home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / games_du / dnultra.zip / DNULTRA.ZIP / GAME.CON next >
Text File  |  1996-06-01  |  102KB  |  3,650 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8. -------------------------------------------------------------------------------
  9. UltraGORE V1.4 
  10.           by Russell Collison  [103206,367 @compuserve.com]
  11. keep going down for more info. on ultragore v1.4
  12. ________________________________________________________________________________
  13. -------------------------------------------------------------------------------
  14.  
  15. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  16.  
  17. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  18. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  19. multiplayer must be using the EXACT SAME .CON files, or the game will
  20. get out of sync and/or develop interesting problems.
  21.  
  22. 3D Realms encourages you to experiment freely with the parameters
  23. contained in this file, and to share your discoveries with the rest
  24. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  25. any technical support on how to use this file or other user-modifiable 
  26. features of this game.  Do NOT call 3D Realms or Apogee Software 
  27. for advice or help with this subject.  
  28.  
  29. You make modifications to this and other files at your own risk. 
  30. It is recommended that you first make a backup copy of this, or
  31. any .CON files before making any changes.
  32.  
  33. --------------------------------------------------------------------------------
  34. THINGS ADDED IN *V1.4*
  35.  
  36. - An all time high of blood, arms, legs, eyes and gore, gore, gore !!!
  37.  
  38. - Now all the monsters spurt blood after dead (all gore all the time)
  39.  
  40. - Now with UltraGORE v1.4 you can add it to the full version of duke3D
  41.  
  42. - A new weapon for DUKE (is called the FIRELASER) 
  43.  
  44. - Now monsters shoot differen t weapons along with there old ones 
  45. (EX: troopers drop bombs EX: PigCops shoot an RPG !!!!)
  46.  
  47. - Added sounds (More swearing etc.)
  48.  
  49. - Suped-up weapons (extra powerful)
  50.  
  51. ___________________________________________________________________________________--
  52.  Remember to add the "user.con" file as well as this one if you already  
  53.  haven't.
  54.  
  55.  Also, these files won't work correctly during a DukeMatch unless your
  56.  friends have this file too. In that case, let the gore fly !!!
  57.  ____________________________________________________________________________________
  58.  
  59. */
  60.  
  61. include DEFS.CON
  62. include USER.CON
  63.  
  64. state genericshrunkcode
  65.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  66.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  67. ends
  68.  
  69. move SHUTTLEVELS 16
  70.  
  71. actor SPACESHUTTLE TOUGH
  72.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  73. enda
  74.  
  75. actor SATELLITE TOUGH
  76.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  77.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  78. enda
  79.  
  80. action ASHARKCRUZING 0 8 5 1 24
  81. action ASHARKFLEE    0 8 5 1 10
  82. action ASHARKATACK   0 8 5 1 6
  83. action ASHARKSHRUNK  0 8 5 1 24
  84. action ASHARKFROZEN  0 1 5 1 24
  85.  
  86. move SHARKVELS 24
  87. move SHARKFASTVELS 72
  88. move SHARKFLEEVELS 40
  89.  
  90. actor SHARK SHARKSTRENGTH ASHARKCRUZING SHARKVELS randomangle geth
  91.     ifaction ASHARKSHRUNK
  92.     {
  93.         ifcount SHRUNKDONECOUNT action ASHARKCRUZING
  94.         else ifcount SHRUNKCOUNT sizeto 24 24
  95.         else state genericshrunkcode
  96.     }
  97.     else ifaction ASHARKFROZEN
  98.     {
  99.         fall
  100.  
  101.         ifcount THAWTIME { action ASHARKFLEE getlastpal }
  102.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  103.  
  104.         ifhitweapon
  105.         {
  106.             ifwasweapon FREEZEBLAST { strength 0 break }
  107.             lotsofglass 30
  108.             sound GLASS_BREAKING
  109.             killit
  110.         }
  111.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  112.         break
  113.     }
  114.     else ifaction ASHARKFLEE
  115.     {
  116.         ifcount 16 ifrnd 48 { action ASHARKCRUZING move SHARKVELS randomangle geth }
  117.     }
  118.     else ifaction ASHARKCRUZING
  119.     {
  120.         ifcansee ifcount 48 ifrnd 2 { action ASHARKATACK move SHARKFASTVELS faceplayerslow getv break }
  121.         ifcount 32 ifnotmoving
  122.         {
  123.             ifrnd 128 move SHARKVELS randomangle geth
  124.             else move SHARKFASTVELS randomangle geth
  125.         }
  126.     }
  127.     else ifaction ASHARKATACK
  128.     {
  129.         ifcount 4
  130.         {
  131.             ifpdistl 1280
  132.             {
  133.                 ifp palive ifcanshoottarget
  134.                 {
  135.                     sound DUKE_GRUNT
  136.                     palfrom 32 32
  137.                     addphealth SHARKBITESTRENGTH
  138.                 }
  139.                 action ASHARKFLEE
  140.                 move SHARKFLEEVELS fleeenemy
  141.             }
  142.         }
  143.         else ifnotmoving
  144.             { ifcount 32 { action ASHARKCRUZING move SHARKVELS randomangle geth } }
  145.         else ifcount 48 ifrnd 2
  146.             { action ASHARKCRUZING move SHARKFASTVELS randomangle geth }
  147.     }
  148.  
  149.     ifhitweapon
  150.     {
  151.         ifdead
  152.             { sound SQUISHED guts JIBS6 5 killit }
  153.         else
  154.         {
  155.             ifwasweapon SHRINKSPARK
  156.             {
  157.                 action ASHARKSHRUNK
  158.                 sound ACTOR_SHRINKING
  159.             }
  160.             else ifwasweapon FREEZEBLAST
  161.             {
  162.                 action ASHARKFROZEN
  163.                 sound SOMETHINGFROZE
  164.                 move 0
  165.             }
  166.             else move SHARKVELS randomangle geth
  167.         }
  168.     }
  169. enda
  170.  
  171.  
  172. action BLIMPWAITTORESPAWN
  173.  
  174. state blimphitstate
  175.     cstat 0
  176.     spawn FIRSTGUNSPRITE
  177.     spawn EXPLOSION2
  178.  
  179.     debris SCRAP1 40            // Weapons and ammo!
  180.     debris SCRAP2 32
  181.     debris SCRAP3 32
  182.     debris SCRAP4 32
  183.     debris SCRAP5 32
  184.  
  185.     sound PIPEBOMB_EXPLODE
  186.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  187.     else killit
  188. ends
  189.  
  190. actor BLIMP 1
  191.  
  192.     ifaction BLIMPWAITTORESPAWN
  193.     {
  194.         ifcount RESPAWNACTORTIME
  195.         {
  196.             action 0
  197.             cstat 0
  198.             move 0
  199.         }
  200.         break
  201.     }
  202.  
  203.     ifhitweapon
  204.     {
  205.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  206.         ifwasweapon RPG state blimphitstate
  207.         strength 1
  208.     }
  209. enda
  210.  
  211.  
  212.  
  213. state rats
  214.     ifrnd 128 spawn RAT
  215.     ifrnd 128 spawn RAT
  216.     ifrnd 128 spawn RAT
  217.     ifrnd 128 spawn RAT
  218.     ifrnd 128 spawn RAT
  219.     ifrnd 128 spawn RAT
  220.     ifrnd 128 spawn RAT
  221.     ifrnd 128 spawn RAT
  222. ends
  223.  
  224. move RESPAWN_ACTOR_FLAG
  225.  
  226. action RUBCANDENT 1 1 1 1 1
  227. action RUBCAN
  228.  
  229. actor RUBBERCAN WEAK
  230.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  231.     else ifhitweapon
  232.     {
  233.         ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 killit }
  234.         else action RUBCANDENT
  235.     }
  236. enda
  237.  
  238. state headhitstate
  239. // Unrem the following line to involving screen tilting during
  240. // low player hitpoint damage.
  241.  
  242.  
  243. // wackplayer
  244.  
  245.  
  246. ends
  247.  
  248.  
  249. action EXPBARRELFRAME         0   2   1   1   15
  250. actor EXPLODINGBARREL 26
  251.     fall
  252.     ifaction EXPBARRELFRAME
  253.     {
  254.         ifactioncount 2
  255.         {
  256.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  257.             spawn EXPLOSION2
  258.             debris SCRAP2 2
  259.             sound PIPEBOMB_EXPLODE
  260.             killit
  261.         }
  262.         break
  263.     }
  264.     ifsquished
  265.     {
  266.         debris SCRAP1 5
  267.         killit
  268.         break
  269.     }
  270.     ifhitweapon
  271.         action EXPBARRELFRAME
  272. enda
  273.  
  274. action BURNING_FLAME    0   12   1   1   2
  275. move BURNING_VELS 
  276.  
  277. state burningstate
  278.  
  279.     ifgapzl 16 break
  280.     ifpdistg 10240 break
  281.  
  282.     ifcount 128
  283.     {
  284.         ifspawnedby TIRE
  285.         {
  286.             ifactioncount 512
  287.             {
  288.                 sizeto 16 16
  289.                 killit
  290.             }
  291.             ifrnd 16 sizeto 64 48
  292.         }
  293.         else
  294.         {
  295.             sizeto 8 8 sizeto 8 8
  296.             ifactioncount 192 killit
  297.         }
  298.     }
  299.     else
  300.     {
  301.         ifmove 0 move BURNING_VELS
  302.  
  303.         ifspawnedby BOX
  304.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  305.         else ifspawnedby TREE1 sizeto 96 96
  306.         else ifspawnedby TREE2 sizeto 96 96
  307.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  308.         else sizeto 52 52
  309.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  310.     }
  311.  
  312. ends
  313.  
  314. actor BURNING WEAK BURNING_FLAME
  315.     state burningstate
  316. enda
  317.  
  318. actor BURNING2 WEAK BURNING_FLAME
  319.     state burningstate
  320. enda
  321.  
  322. action TOILETWATERFRAMES 0 4 1 1 1
  323. actor TOILETWATER 0 TOILETWATERFRAMES
  324.     ifpdistl 8192
  325.     {
  326.         soundonce WATER_GURGLE
  327.         ifspawnedby TOILET sizeto 34 34
  328.         else
  329.         {
  330.             ifspawnedby WATERFOUNTAINBROKE
  331.                 sizeto 6 15
  332.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  333.         }
  334.  
  335.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  336.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  337.         {
  338.             addphealth 1
  339.             globalsound DUKE_DRINKING
  340.             resetactioncount
  341.         }
  342.     }
  343. enda
  344.  
  345. action WOODENHORSEFRAME  0   1   4
  346. action WOODENFALLFRAME  122  1   5
  347.  
  348. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  349. actor WOODENHORSE WEAK WOODENHORSEFRAME
  350.     fall
  351.     ifhitweapon
  352.     {
  353.         ifdead
  354.         {
  355.             debris SCRAP1 4
  356.             debris SCRAP2 3
  357.             killit
  358.         }
  359.         else action WOODENFALLFRAME
  360.     }
  361. enda
  362.  
  363. state steamcode
  364.     ifpdistl 8192 soundonce STEAM_HISSING
  365.  
  366.     ifcount 20
  367.     {
  368.         resetcount
  369.         ifp palive ifpdistl 1024
  370.         {
  371.             addphealth -1
  372.             palfrom 16 16
  373.         }
  374.     }
  375.     else
  376.     {
  377.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  378.         sizeto 24 24
  379.     }
  380. ends
  381.  
  382. action STEAMFRAMES      0       5       1       1       1
  383. actor STEAM 0 STEAMFRAMES
  384.     state steamcode
  385. enda
  386.  
  387. actor CEILINGSTEAM 0 STEAMFRAMES
  388.     state steamcode
  389. enda
  390.  
  391. actor WATERBUBBLEMAKER 0 0 randomangle
  392.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  393. enda
  394.  
  395. action BUBBLE
  396. action CRACKEDBUBBLE    1
  397. move BUBMOVE           -10 -36
  398. move BUBMOVEFAST           -10 -52
  399.  
  400. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  401.  
  402.     ifaction CRACKEDBUBBLE
  403.     {
  404.         ifinwater ifrnd 192 killit
  405.         ifactioncount 7 killit
  406.     }
  407.     else
  408.     {
  409.         ifcount 4
  410.         {
  411.             ifrnd 192 move BUBMOVE getv geth randomangle
  412.             else move BUBMOVEFAST getv geth randomangle
  413.             resetcount
  414.         }
  415.  
  416.         ifonwater
  417.         {
  418.             iffloordistl 8 action CRACKEDBUBBLE
  419.         }
  420.         else ifactioncount 40 action CRACKEDBUBBLE
  421.     }
  422. enda
  423.  
  424.  
  425. move SMOKEVEL 8 -16
  426. move ENGINE_SMOKE 64 -64
  427. move SMOKESHOOTOUT -192
  428. action SMOKEFRAMES 0 4 1 1 10
  429. actor SMALLSMOKE 0 SMOKEFRAMES
  430.     ifmove 0
  431.     {
  432.         ifspawnedby RECON
  433.             move SMOKESHOOTOUT geth
  434.         else ifspawnedby SECTOREFFECTOR
  435.             move ENGINE_SMOKE geth getv
  436.         else move SMOKEVEL geth getv faceplayer
  437.         ifspawnedby RPG
  438.         cstat 2
  439.     }
  440.     ifpdistl 1596 ifspawnedby RPG killit
  441.     ifactioncount 4 killit
  442. enda
  443.  
  444. action BARREL_DENTING  2 2 1 1 6
  445. action BARREL_DENTED   1
  446. action BARREL_DENTED2  2
  447.  
  448. move SPAWNED_BLOOD
  449.  
  450. actor NUKEBARRELDENTED WEAK
  451.     cactor NUKEBARREL
  452.     action BARREL_DENTED
  453. enda
  454.  
  455. actor NUKEBARRELLEAKED WEAK
  456.     cactor NUKEBARREL
  457.     action BARREL_DENTED2
  458. enda
  459.  
  460. actor NUKEBARREL MEDIUMSTRENGTH
  461.     ifsquished
  462.     {
  463.         debris SCRAP1 32
  464.         spawn BLOODPOOL
  465.         spawn OOZ
  466.         killit
  467.     }
  468.     fall
  469.     ifaction BARREL_DENTING
  470.     {
  471.         ifactioncount 2
  472.         {
  473.             debris SCRAP1 10
  474.             ifrnd 2 spawn BLOODPOOL
  475.             killit
  476.         }
  477.     }
  478.     else ifhitweapon
  479.     {
  480.         ifdead
  481.         {
  482.             sound VENT_BUST
  483.  
  484.             ifrnd 128
  485.                 spawn BLOODPOOL
  486.             action BARREL_DENTING
  487.         }
  488.         else
  489.         {
  490.             ifaction 0
  491.                 action BARREL_DENTED
  492.             else ifaction BARREL_DENTED
  493.             {
  494.                 action BARREL_DENTED2
  495.                 spawn BLOODPOOL
  496.             }
  497.             else ifaction BARREL_DENTED2
  498.                 action BARREL_DENTING
  499.         }
  500.     }
  501. enda
  502.  
  503. state burningbarrelcode
  504.     fall
  505.     ifcount 32
  506.     {
  507.         resetcount
  508.         ifp palive ifpdistl 1480 ifp phigher
  509.         {
  510.             addphealth -1
  511.             palfrom 16 16
  512.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  513.         }
  514.     }
  515.     ifhitweapon
  516.     {
  517.         sound VENT_BUST
  518.         debris SCRAP1 10
  519.         ifrnd 128 spawn BURNING
  520.         else spawn BURNING2
  521.         killit
  522.     }
  523. ends
  524.  
  525. actor FIREBARREL state burningbarrelcode enda
  526. actor FIREVASE state burningbarrelcode enda
  527.  
  528. action SHRINKERFRAMES 0 4 1 1 10
  529. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  530.     ifactioncount 4 killit
  531. enda
  532.  
  533. action EXPLOSION_FRAMES 0 20 1 1  4
  534. actor EXPLOSION2 1 EXPLOSION_FRAMES
  535.     ifactioncount 20 killit
  536. enda
  537.  
  538. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  539.     ifactioncount 20 killit
  540. enda
  541.  
  542. action FFLAME_FR 0 16 1 1 1
  543. action FFLAME 0 1 1 1 1
  544.  
  545. actor FLOORFLAME 0 FFLAME_FR
  546.         ifaction FFLAME_FR
  547.         {
  548.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  549.                 ifactioncount 16
  550.                     action FFLAME
  551.         }
  552.         ifaction FFLAME ifrnd 4
  553.         {
  554.              action FFLAME_FR
  555.              sound CAT_FIRE
  556.              resetactioncount
  557.         }
  558.  
  559. enda
  560.  
  561.  
  562.  
  563. action ASATNSPIN   0 5 1 1 4
  564. action ASATSHOOTING -10 3 5 1 40
  565. action ASATWAIT 0 1 5 1 1
  566. move TURRVEL
  567.  
  568. actor ROTATEGUN ROTTURRETSTRENGTH
  569. // ASATSHOOTING TURRVEL faceplayer
  570.  
  571.     ifaction 0
  572.     {
  573.         action ASATSHOOTING
  574.         move TURRVEL faceplayer
  575.     }
  576.     else ifaction ASATNSPIN
  577.         { ifactioncount 32 { action ASATWAIT move TURRVEL faceplayer } }
  578.     else ifaction ASATSHOOTING
  579.     {
  580.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  581.         ifcount 32 resetcount
  582.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  583.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
  584.     }
  585.     else ifaction ASATWAIT
  586.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  587.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  588.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  589.  
  590. enda
  591.  
  592. action RIP_F 0 8 1 1 1
  593. actor FORCERIPPLE 0 RIP_F
  594.     ifactioncount 8 killit
  595. enda
  596.  
  597. action TRANSFOWARD 0  6  1  1  2
  598. action TRANSBACK   5  6  1 -1  2
  599. actor TRANSPORTERSTAR 0 TRANSFOWARD
  600.     ifaction TRANSFOWARD
  601.     {
  602.         ifactioncount 6
  603.             action TRANSBACK
  604.     }
  605.     else
  606.         ifactioncount 6 killit
  607. enda
  608.  
  609. action BEAMFOWARD  0  4  1  1  9
  610. actor TRANSPORTERBEAM 0 BEAMFOWARD
  611.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  612.     ifactioncount 4 killit
  613. enda
  614.  
  615. state getcode
  616.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  617.     else globalsound DUKE_GET
  618.     palfrom 16 0 32
  619.     ifrespawn
  620.     {
  621.         move RESPAWN_ACTOR_FLAG
  622.         spawn RESPAWNMARKERRED
  623.         cstat 32768
  624.     }
  625.     else killit
  626. ends
  627.  
  628. state randgetweapsnds
  629.     ifrnd 64 globalsound DUKE_GETWEAPON1
  630.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  631.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  632.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  633.     else globalsound DUKE_GETWEAPON6
  634. ends
  635.  
  636. state getweaponcode
  637.  
  638.     state randgetweapsnds
  639.  
  640.     palfrom 32 0 32
  641.     ifgotweaponce 1 break
  642.     ifrespawn
  643.     {
  644.         move RESPAWN_ACTOR_FLAG
  645.         spawn RESPAWNMARKERRED
  646.         cstat 32768
  647.     }
  648.     else killit
  649. ends
  650.  
  651.  
  652. state respawnit
  653.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  654. ends
  655.  
  656. state quikget
  657.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  658.     else globalsound DUKE_GET
  659.     palfrom 16 0 32
  660.     killit
  661. ends
  662.  
  663. state quikweaponget
  664.     state randgetweapsnds
  665.     palfrom 32 0 32
  666.     ifgotweaponce 1 break
  667.     killit
  668. ends
  669.  
  670. actor STEROIDS
  671.     fall
  672.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  673.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  674.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  675.     {
  676.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  677.         ifspawnedby STEROIDS state getcode
  678.         else state quikget
  679.     }
  680. enda
  681.  
  682. actor HEATSENSOR
  683.     fall
  684.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  685.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  686.         ifcanseetarget
  687.     {
  688.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  689.         ifspawnedby HEATSENSOR state getcode
  690.         else state quikget
  691.     }
  692. enda
  693.  
  694. actor BOOTS
  695.     fall
  696.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  697.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  698.         ifcanseetarget
  699.     {
  700.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  701.         ifspawnedby BOOTS state getcode
  702.         else state quikget
  703.     }
  704. enda
  705.  
  706. actor SHIELD
  707.     fall
  708.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  709.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  710.         ifcanseetarget
  711.     {
  712.         ifspawnedby PIGCOP
  713.         {
  714.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  715.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  716.             quote 104
  717.             sound KICK_HIT palfrom 24 0 32 killit
  718.         }
  719.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  720.         ifspawnedby SHIELD state getcode
  721.         else state quikget
  722.     }
  723. enda
  724.  
  725. actor AIRTANK
  726.     fall
  727.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  728.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  729.         ifcanseetarget
  730.     {
  731.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  732.         ifspawnedby AIRTANK state getcode
  733.         else state quikget
  734.     }
  735. enda
  736.  
  737. action HOLODUKE_FRAMES 0 4 1 1 8
  738. actor HOLODUKE 0 HOLODUKE_FRAMES
  739.     fall
  740.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  741.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  742.         ifcanseetarget
  743.     {
  744.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  745.         ifspawnedby HOLODUKE state getcode
  746.         else state quikget
  747.     }
  748. enda
  749.  
  750. actor JETPACK
  751.     fall
  752.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  753.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  754.     {
  755.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  756.         ifspawnedby JETPACK state getcode
  757.         else state quikget
  758.     }
  759. enda
  760.  
  761. actor ACCESSCARD
  762.     fall
  763.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  764.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  765.     {
  766.         ifpinventory GET_ACCESS 0 break
  767.         addinventory GET_ACCESS 1
  768.         quote 43
  769.         state getcode
  770.     }
  771. enda
  772.  
  773. // test boss_recod
  774.  
  775.  
  776. actor AMMO
  777.     fall
  778.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  779.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  780.     {
  781.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  782.         ifspawnedby AMMO state getcode
  783.         else state quikget
  784.     }
  785. enda
  786.  
  787. actor FREEZEAMMO
  788.     fall
  789.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  790.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  791.     {
  792.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  793.         ifspawnedby FREEZEAMMO state getcode
  794.         else state quikget
  795.     }
  796. enda
  797.  
  798.  
  799.  
  800. actor SHOTGUNAMMO
  801.     fall
  802.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  803.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  804.     {
  805.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  806.         ifspawnedby SHOTGUNAMMO state getcode
  807.         else state quikget
  808.     }
  809. enda
  810.  
  811. actor AMMOLOTS
  812.     fall
  813.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  814.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  815.     {
  816.         addammo PISTOL_WEAPON 48 quote 65
  817.         ifspawnedby AMMOLOTS state getcode
  818.         else state quikget
  819.     }
  820. enda
  821.  
  822. actor CRYSTALAMMO
  823.     fall
  824.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  825.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  826.     {
  827.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  828.         ifspawnedby CRYSTALAMMO state getcode
  829.         else state quikget
  830.     }
  831. enda
  832.  
  833. actor BATTERYAMMO
  834.     fall
  835.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  836.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  837.     {
  838.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  839.         ifspawnedby BATTERYAMMO state getcode
  840.         else state quikget
  841.     }
  842. enda
  843.  
  844. actor DEVISTATORAMMO
  845.     fall
  846.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  847.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  848.     {
  849.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  850.         ifspawnedby DEVISTATORAMMO state getcode
  851.         else state quikget
  852.     }
  853. enda
  854.  
  855. actor RPGAMMO
  856.     fall
  857.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  858.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  859.     {
  860.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  861.         ifspawnedby RPGAMMO state getcode
  862.         else state quikget
  863.     }
  864. enda
  865.  
  866. actor HBOMBAMMO
  867.     fall
  868.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  869.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  870.     {
  871.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  872.  
  873.         addweapon HANDBOMB_WEAPON 1 quote 55
  874.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  875.  
  876.         ifspawnedby HBOMBAMMO state getweaponcode
  877.         else state quikweaponget
  878.     }
  879. enda
  880.  
  881. actor RPGSPRITE
  882.     fall
  883.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  884.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  885.     {
  886.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  887.  
  888.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  889.         ifspawnedby RPGSPRITE state getweaponcode
  890.         else state quikweaponget
  891.     }
  892. enda
  893.  
  894. // 531.89 GTE.
  895. // IMA.
  896. // PO BOX 4629
  897. // Rocford ill, 61110-4629
  898. // Ms. Lee
  899.  
  900. actor SHOTGUNSPRITE
  901.     fall
  902.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  903.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  904.     {
  905.         ifspawnedby PIGCOP
  906.         {
  907.             addweapon SHOTGUN_WEAPON 0
  908.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  909.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  910.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  911.             else addammo SHOTGUN_WEAPON 1
  912.         }
  913.         else
  914.         {
  915.             ifgotweaponce 0 break // Multiplayer only
  916.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  917.         }
  918.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  919.         else state quikweaponget
  920.     }
  921. enda
  922.  
  923.  
  924.  
  925. actor SIXPAK
  926.     fall
  927.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  928.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  929.     {
  930.         addphealth 30 quote 62
  931.         ifspawnedby SIXPAK state getcode
  932.         else state quikget
  933.     }
  934. enda
  935.  
  936. actor COLA
  937.     fall
  938.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  939.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  940.     {
  941.         addphealth 10 quote 61
  942.         ifspawnedby COLA state getcode
  943.         else state quikget
  944.     }
  945. enda
  946.  
  947. actor ATOMICHEALTH
  948.     fall
  949.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  950.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  951.         ifphealthl MAXPLAYERATOMICHEALTH
  952.     {
  953.         addphealth 50 quote 19
  954.         ifspawnedby ATOMICHEALTH state getcode
  955.         else state quikget
  956.     }
  957. enda
  958.  
  959.  
  960.  
  961.  
  962. actor FIRSTAID
  963.     fall
  964.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  965.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  966.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  967.     {
  968.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  969.  
  970.         ifspawnedby FIRSTAID state getcode
  971.         else state quikget
  972.     }
  973. enda
  974.  
  975.  
  976. actor FIRSTGUNSPRITE
  977.     fall
  978.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  979.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  980.     {
  981.         ifgotweaponce 0 break
  982.  
  983.         addweapon PISTOL_WEAPON 48
  984.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  985.         else state quikweaponget
  986.     }
  987. enda
  988.  
  989.  
  990. actor TRIPBOMBSPRITE
  991.     fall
  992.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  993.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  994.     {
  995.         ifgotweaponce 0 break
  996.  
  997.         addweapon TRIPBOMB_WEAPON 1
  998.         quote 58
  999.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1000.         else state quikweaponget
  1001.     }
  1002. enda
  1003.  
  1004. actor CHAINGUNSPRITE
  1005.     fall
  1006.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1007.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1008.     {
  1009.         ifgotweaponce 0 break
  1010.  
  1011.         addweapon CHAINGUN_WEAPON 50 quote 54
  1012.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1013.         else state quikweaponget
  1014.     }
  1015. enda
  1016.  
  1017.  
  1018.  
  1019. actor SHRINKERSPRITE
  1020.     fall
  1021.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1022.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1023.     {
  1024.         ifgotweaponce 0 break
  1025.  
  1026.         addweapon SHRINKER_WEAPON 10 quote 60
  1027.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1028.         else state quikweaponget
  1029.     }
  1030. enda
  1031.  
  1032. actor FREEZESPRITE
  1033.     fall
  1034.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1035.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1036.     {
  1037.         ifgotweaponce 0 break
  1038.  
  1039.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1040.         ifspawnedby FREEZESPRITE state getweaponcode
  1041.         else state quikweaponget
  1042.     }
  1043. enda
  1044.  
  1045. actor DEVISTATORSPRITE
  1046.     fall
  1047.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1048.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1049.     {
  1050.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1051.  
  1052.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1053.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1054.         else state quikweaponget
  1055.     }
  1056. enda
  1057.  
  1058.  
  1059. state firestate
  1060.  
  1061.     ifgapzl 16 break
  1062.     ifinwater killit
  1063.  
  1064.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1065.  
  1066.     ifactor FIRE ifspawnedby FIRE break
  1067.     else ifactor FIRE2 ifspawnedby FIRE2 break
  1068.  
  1069.     iffloordistl 128
  1070.     {
  1071.         ifcount 32 sizeto 8 8
  1072.         ifcount 64 killit
  1073.     }
  1074.     else killit
  1075.  
  1076. ends
  1077.  
  1078. action FIRE_FRAMES     -1 14 1 1 1
  1079. move FIREVELS
  1080. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1081. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1082.  
  1083. actor FECES
  1084.     ifcount 24
  1085.     {
  1086.         ifpdistl RETRIEVEDISTANCE
  1087.         {
  1088.             soundonce DUKE_STEPONFECES
  1089.             sound STEPNIT
  1090.  
  1091.             spawn BLOODPOOL   // Will be brown
  1092.             killit
  1093.         }
  1094.     }
  1095.     else sizeto 32 32
  1096. enda
  1097.  
  1098. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  1099. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  1100. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  1101. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  1102. state drop_chaingun
  1103.     ifrnd SPAWNAMMOODDS
  1104.     {
  1105.         ifrnd 32 spawn CHAINGUNSPRITE
  1106.         else spawn BATTERYAMMO
  1107.     }
  1108. ends
  1109.  
  1110. state jib_sounds
  1111.     ifrnd SWEARFREQUENCY
  1112.     {
  1113.         ifrnd 16 globalsound JIBBED_ACTOR1
  1114.         else ifrnd 16 globalsound JIBBED_ACTOR2
  1115.         else ifrnd 16 globalsound JIBBED_ACTOR3
  1116.         else ifrnd 16 globalsound JIBBED_ACTOR5
  1117.         else ifrnd 16 globalsound JIBBED_ACTOR6
  1118.         else ifrnd 16 globalsound JIBBED_ACTOR10
  1119.         else ifrnd 16 globalsound JIBBED_ACTOR7
  1120.         else ifrnd 16 globalsound JIBBED_ACTOR4
  1121.         else ifrnd 16 globalsound JIBBED_ACTOR8
  1122.         else ifrnd 16 globalsound JIBBED_ACTOR13
  1123.         else ifrnd 16 globalsound JIBBED_ACTOR9
  1124.         else ifrnd 16 globalsound JIBBED_ACTOR11
  1125.         else ifrnd 16 globalsound JIBBED_ACTOR12
  1126.     }
  1127. ends
  1128.  
  1129. state hurt_jibs
  1130.     guts JIBS6 10
  1131. ends
  1132.  
  1133. state standard_jibs
  1134.     guts JIBS2 1
  1135.     guts JIBS3 2
  1136.     guts JIBS4 3
  1137.     guts JIBS5 2
  1138.     guts JIBS6 3
  1139.     ifrnd 4 { guts JIBS1 1 spawn BLOODPOOL }               // spine
  1140.     state jib_sounds
  1141. ends
  1142.  
  1143. state ultragore_jibs
  1144.     guts JIBS3 15
  1145.     guts JIBS6 20
  1146.     ifrnd 1 { spawn BLOODPOOL }               
  1147. ends
  1148.  
  1149.  
  1150. action FEMSHRUNK
  1151. action FEMFROZEN1 1
  1152. action FEMFROZEN2
  1153. action FEMDANCE1 19 1 1 1 16
  1154. action FEMDANCE3 19 1 1 1 26
  1155.  
  1156. action FEMDANCE2 20 2 1 1 10
  1157. action FEMANIMATE
  1158.  
  1159. state femcode
  1160.  
  1161.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1162.     {
  1163.         fall
  1164.         ifactor BLOODYPOLE ifhitweapon ifdead
  1165.             { state standard_jibs killit }
  1166.     }
  1167.  
  1168.     ifaction FEMSHRUNK
  1169.     {
  1170.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1171.         else ifcount SHRUNKCOUNT sizeto 40 40
  1172.         else state genericshrunkcode
  1173.     }
  1174.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1175.     else ifaction FEMDANCE2 { ifactioncount 8 action FEMDANCE3 }
  1176.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1177.     else ifaction FEMFROZEN1
  1178.     {
  1179.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1180.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1181.  
  1182.         ifhitweapon
  1183.         {
  1184.             ifwasweapon FREEZEBLAST { strength 0 break }
  1185.             lotsofglass 30
  1186.             state ultragore_jibs
  1187.             sound GLASS_BREAKING
  1188.             respawnhitag
  1189.             ifrnd 84 spawn BLOODPOOL
  1190.             killit
  1191.         }
  1192.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1193.         break
  1194.     }
  1195.     else ifaction FEMFROZEN2
  1196.     {
  1197.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1198.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1199.  
  1200.         ifhitweapon
  1201.         {
  1202.             ifwasweapon FREEZEBLAST { strength 0 break }
  1203.             lotsofglass 30
  1204.  
  1205.             sound GLASS_BREAKING
  1206.             ifrnd 84 spawn BLOODPOOL
  1207.             respawnhitag
  1208.  
  1209.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1210.             else sound DUKE_HIT_STRIPPER2
  1211.  
  1212.             killit
  1213.         }
  1214.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1215.         break
  1216.     }
  1217.  
  1218.     ifhitweapon
  1219.     {
  1220.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1221.  
  1222.         ifdead
  1223.         {
  1224.             ifwasweapon FREEZEBLAST
  1225.             {
  1226.                 ifaction FEMSHRUNK break
  1227.  
  1228.                 ifactor NAKED1 action FEMFROZEN2
  1229.                 else ifactor FEM5 action FEMFROZEN2
  1230.                 else ifactor FEM6 action FEMFROZEN2
  1231.                 else ifactor FEM8 action FEMFROZEN2
  1232.                 else ifactor FEM9 action FEMFROZEN2
  1233.                 else ifactor PODFEM1 action FEMFROZEN2
  1234.                 else action FEMFROZEN1
  1235.  
  1236.                 move 0
  1237.                 spritepal 1
  1238.                 strength 0
  1239.  
  1240.                 sound SOMETHINGFROZE
  1241.  
  1242.                 break
  1243.             }
  1244.  
  1245.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1246.             else sound DUKE_HIT_STRIPPER2
  1247.  
  1248.             respawnhitag
  1249.             state standard_jibs
  1250.  
  1251.             shoot BLOODSPLAT1
  1252.             shoot BLOODSPLAT2
  1253.             shoot BLOODSPLAT3
  1254.             shoot BLOODSPLAT4
  1255.             spawn BLOODPOOL
  1256.  
  1257.             ifactor FEM1 money 5
  1258.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  1259.             else ifactor FEM3 money 4
  1260.             else ifactor FEM7 money 8
  1261.  
  1262.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  1263.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  1264.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  1265.             else
  1266.             {
  1267.                 spritepal 6
  1268.                 soundonce LADY_SCREAM
  1269.                 ifactor NAKED1 debris SCRAP3 18
  1270.                 else ifactor PODFEM1 debris SCRAP3 18
  1271.                 killit
  1272.             }
  1273.         }
  1274.         else
  1275.         {
  1276.             sound SQUISHED
  1277.             guts JIBS6 1
  1278.             ifactor FEM8 break
  1279.             soundonce LADY_SCREAM
  1280.         }
  1281.     }
  1282. ends
  1283.  
  1284. state killme
  1285.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  1286. ends
  1287.  
  1288. state tipme
  1289.     ifp pfacing ifpdistl 1280 ifhitspace
  1290.     {
  1291.         tip
  1292.         ifrnd 128 soundonce DUKE_TIP1
  1293.         else soundonce DUKE_TIP2
  1294.         ifactor FEM1 action FEMDANCE1
  1295.     }
  1296. ends
  1297.  
  1298. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  1299. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  1300. actor FEM3 TOUGH FEMANIMATE state tipme state femcode enda
  1301. actor FEM4 TOUGH FEMANIMATE state femcode enda
  1302. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  1303. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  1304. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  1305. actor FEM8 TOUGH FEMANIMATE state femcode enda
  1306. actor FEM9 TOUGH FEMANIMATE state femcode enda
  1307. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  1308. actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  1309. actor BLOODYPOLE TOUGH state femcode enda
  1310.  
  1311. actor STATUEFLASH fall // state statuehit
  1312.     ifcount 32 cactor STATUE
  1313. enda
  1314.  
  1315. actor STATUE fall
  1316.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  1317. enda
  1318.  
  1319. actor MIKE
  1320.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  1321. enda
  1322.  
  1323. state troop_body_jibs
  1324.     ifrnd 64 guts HEADJIB1 1
  1325.     ifrnd 64 guts LEGJIB1 2
  1326.     ifrnd 64 guts ARMJIB1 1
  1327.     ifrnd 48 spawn BLOODPOOL
  1328. ends
  1329.  
  1330. state liz_body_jibs
  1331. ifrnd 64 guts LIZMANHEAD1 1
  1332.     ifrnd 64 guts LIZMANLEG1 2
  1333.     ifrnd 64 guts LIZMANARM1 1
  1334.     ifrnd 48 spawn BLOODPOOL
  1335. ends
  1336.  
  1337. state delete_enemy killit ends
  1338.  
  1339.  
  1340. action BLOODFRAMES 0 4 1 1 15
  1341. actor BLOOD 0 BLOODFRAMES
  1342.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  1343.     ifpdistg 3144 killit
  1344.     ifactioncount 4 killit
  1345. enda
  1346.  
  1347. action EGGOPEN1 1 1 1 1 4
  1348. action EGGOPEN2 2 1 1 1 4
  1349. action EGGOPEN3 2 1 1 1 4
  1350. action EGGWAIT  0
  1351. action EGGFROZEN 1
  1352. action EGGSHRUNK 1
  1353.  
  1354. actor EGG TOUGH
  1355.     ifaction 0
  1356.     {
  1357.         ifcount 64
  1358.         {
  1359.             ifrnd 128 { action EGGWAIT move 0 }
  1360.             else
  1361.             {
  1362.                 sound SLIM_HATCH
  1363.                 action EGGOPEN1
  1364.             }
  1365.         }
  1366.     }
  1367.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  1368.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  1369.     else ifaction EGGSHRUNK
  1370.     {
  1371.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  1372.         else ifcount SHRUNKCOUNT sizeto 48 40
  1373.         else state genericshrunkcode
  1374.     }
  1375.     else ifaction EGGFROZEN
  1376.     {
  1377.         ifcount THAWTIME { action 0 getlastpal }
  1378.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1379.  
  1380.         ifhitweapon
  1381.         {
  1382.             ifwasweapon FREEZEBLAST { strength 0 break }
  1383.             lotsofglass 30
  1384.  
  1385.             sound GLASS_BREAKING
  1386.             ifrnd 84 spawn BLOODPOOL
  1387.  
  1388.             addkills 1
  1389.             killit
  1390.         }
  1391.  
  1392.         // ifp pducking
  1393.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1394.  
  1395.         break
  1396.     }
  1397.  
  1398.     ifhitweapon
  1399.     {
  1400.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  1401.  
  1402.         ifdead
  1403.         {
  1404.             ifwasweapon FREEZEBLAST
  1405.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  1406.  
  1407.             addkills 1
  1408.  
  1409.             sound SQUISHED
  1410.  
  1411.             state standard_jibs
  1412.             state delete_enemy
  1413.         }
  1414.     }
  1415.     else ifaction EGGWAIT
  1416.     {
  1417.         ifcount 512 ifrnd 2
  1418.         {
  1419.             ifaction EGGSHRUNK break
  1420.             sound SLIM_HATCH
  1421.             action EGGOPEN1
  1422.         }
  1423.     }
  1424.  
  1425. enda
  1426.  
  1427. actor KNEE KNEE_WEAPON_STRENGTH enda
  1428. actor SPIT SPIT_WEAPON_STRENGTH enda
  1429. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  1430. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  1431. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  1432. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  1433. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  1434. actor MORTER MORTER_WEAPON_STRENGTH enda
  1435. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  1436. actor RPG RPG_WEAPON_STRENGTH enda
  1437. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1438. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1439. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  1440. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  1441.  
  1442. action WEAP2FRAMES 0  4  1  1  6
  1443. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  1444.     ifdead killit
  1445.     ifactioncount 4 killit
  1446.     else
  1447.     {
  1448.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  1449.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  1450.     }
  1451. enda
  1452.  
  1453. state standard_pjibs
  1454.     guts JIBS1 1
  1455.     guts JIBS3 2
  1456.     guts JIBS4 1
  1457.     guts JIBS5 1
  1458.     guts JIBS6 2
  1459.     guts DUKETORSO 1
  1460.     guts DUKELEG 2
  1461.     guts DUKEGUN 1
  1462.     ifrnd 16 money 1
  1463. ends
  1464.  
  1465. move DUKENOTMOVING
  1466. state handle_dead_dukes
  1467.     fall
  1468.     ifmove 0     // 1st time initializiation...
  1469.     {
  1470.         ifrnd 128 cstat 4
  1471.         else cstat 0
  1472.         move DUKENOTMOVING
  1473.     }
  1474.  
  1475.     ifsquished
  1476.     {
  1477.         sound SQUISHED
  1478.         spawn OOZ
  1479.         killit
  1480.     }
  1481.     else ifcount 1024 ifpdistg 4096 killit
  1482.     else
  1483.     {
  1484.         strength 0
  1485.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  1486.         {
  1487.             state standard_jibs
  1488.             killit
  1489.         }
  1490.     }
  1491. ends
  1492.  
  1493. action PLYINGFRAMES 0 1 0 1 1
  1494. actor DUKELYINGDEAD 0 PLYINGFRAMES
  1495.     state handle_dead_dukes
  1496. enda
  1497.  
  1498. action PSTAND       0   1   5   1    1
  1499. action PEXPLODE     106   5   1   1   10
  1500. action PEXPLODEAD   113   1   1
  1501.  
  1502. action PJPHOUVER    15   1   5   1
  1503. action PWALK        20   4   5   1   16
  1504. action PRUN         20   4   5   1   10
  1505. action PWALKBACK    45   4   5  -1   16
  1506. action PRUNBACK     45   4   5  -1   10
  1507. action PJUMPING     50   4   5   1   30
  1508. action PFALLING     65   1   5
  1509. action PDUCKING     86   1   5
  1510. action PCRAWLING    86   3   5   1   20
  1511. action PAKICKING    40   2   5   1   25
  1512. action PFLINTCHING  106  1   1   1   10
  1513. action PTHROWNBACK  106  5   1   1   18
  1514. action PFROZEN       20  1   5
  1515. action PLYINGDEAD   113  1   1
  1516.  
  1517. action PSWIMMINGGO   375   1   5   1   10
  1518. action PSWIMMING     375   4   5   1   13
  1519. action PSWIMMINGWAIT 395   1   5   1   13
  1520. action PTREDWATER    395   2   5   1   17
  1521.  
  1522. move PSTOPED
  1523. move PSHRINKING // used as a var only
  1524.  
  1525. state check_dead_thrown_back
  1526.     ifdead
  1527.     {
  1528.         strength 0
  1529.         action PTHROWNBACK
  1530.     }
  1531. ends
  1532.  
  1533. state check_pstandard
  1534.     ifp pwalking action PWALK
  1535.     else ifp pkicking action PAKICKING
  1536.     else ifp pwalkingback action PWALKBACK
  1537.     else ifp prunning action PRUN
  1538.     else ifp prunningback action PRUNBACK
  1539.     else ifp pjumping
  1540.         action PJUMPING
  1541.     else ifp pducking action PDUCKING
  1542. ends
  1543.  
  1544. state random_wall_jibs
  1545.     ifrnd 96 shoot BLOODSPLAT1
  1546.     ifrnd 96 shoot BLOODSPLAT2
  1547.     ifrnd 96 shoot BLOODSPLAT3
  1548.     ifrnd 96 shoot BLOODSPLAT4
  1549.     ifrnd 96 shoot BLOODSPLAT1
  1550. ends
  1551.  
  1552. actor APLAYER 100 PSTAND 0 0
  1553.  
  1554.     ifaction 0 action PSTAND
  1555.     ifdead
  1556.     {
  1557.         ifsquished palfrom 32 63 63 63
  1558.         else fall
  1559.  
  1560.         ifactioncount 7 { move 0 } else ifactioncount 6
  1561.         {
  1562.             ifmultiplayer { }
  1563.             else
  1564.             {
  1565.                 ifrnd 32 sound DUKE_KILLED5
  1566.                 else ifrnd 32 sound DUKE_KILLED3
  1567.                 else ifrnd 32 sound DUKE_KILLED1
  1568.                 else ifrnd 32 sound DUKE_KILLED2
  1569.             }
  1570.         }
  1571.  
  1572.         ifaction PLYINGDEAD
  1573.         {
  1574.             ifactioncount 3 move PSTOPED
  1575.             quote 13
  1576.             ifhitspace
  1577.             {
  1578.                 action PSTAND
  1579.                 spawn DUKELYINGDEAD
  1580.                 resetplayer
  1581.             }
  1582.             break
  1583.         }
  1584.         else ifaction PTHROWNBACK
  1585.         {
  1586.             ifactioncount 5
  1587.             {
  1588.                 spawn BLOODPOOL
  1589.                 action PLYINGDEAD
  1590.             }
  1591.             else ifactioncount 1 move 0
  1592.             break
  1593.         }
  1594.         else ifaction PFROZEN
  1595.         {
  1596.             cstat 257
  1597.  
  1598.             palfrom 16 0 0 24
  1599.  
  1600.             ifhitweapon
  1601.             {
  1602.                 ifwasweapon FREEZEBLAST break
  1603.                 lotsofglass 60
  1604.                 ifrnd 84 spawn BLOODPOOL
  1605.  
  1606.                 getlastpal
  1607.                 sound GLASS_BREAKING
  1608.                 spawn ATOMICHEALTH
  1609.                 cstat 32768
  1610.                 action PLYINGDEAD
  1611.                 break
  1612.             }
  1613.  
  1614.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  1615.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  1616.  
  1617.             ifp pfacing   // assumes some other player
  1618.                 ifpdistl FROZENQUICKKICKDIST pkick
  1619.  
  1620.             break
  1621.         }
  1622.         else ifaction PEXPLODEAD
  1623.         {
  1624.             quote 13
  1625.             ifhitspace
  1626.             {
  1627.                 action PSTAND
  1628.                 resetplayer
  1629.             }
  1630.             break
  1631.         }
  1632.         else ifaction PEXPLODE
  1633.         {
  1634.             ifactioncount 5
  1635.             {
  1636.                 action PEXPLODEAD
  1637.                 spawn BLOODPOOL
  1638.             }
  1639.             break
  1640.         }
  1641.  
  1642.         else ifp pshrunk
  1643.         {
  1644.             state standard_pjibs
  1645.             spawn BLOODPOOL
  1646.  
  1647.             sound SQUISHED
  1648.             sound DUKE_DEAD
  1649.  
  1650.             cstat 32768                 // Hide the sprite
  1651.  
  1652.             action PLYINGDEAD
  1653.         }
  1654.  
  1655.         else
  1656.         {
  1657.             ifinwater
  1658.             {
  1659.                 action PLYINGDEAD
  1660.                 spawn WATERBUBBLE
  1661.                 spawn WATERBUBBLE
  1662.             }
  1663.             else
  1664.             {
  1665.                 action PEXPLODE
  1666.                 state standard_pjibs
  1667.                 cstat 32768
  1668.                 sound SQUISHED
  1669.                 sound DUKE_DEAD
  1670.             }
  1671.         }
  1672.         break
  1673.     }
  1674.  
  1675.     ifsquished
  1676.     {
  1677.         strength -1
  1678.         sound SQUISHED
  1679.         spawn OOZ
  1680.         break
  1681.     }
  1682.  
  1683.     ifp ponsteroids
  1684.     {
  1685.         ifp pstanding { }
  1686.         else spawn FRAMEEFFECT1
  1687.     }
  1688.  
  1689.     ifmove PSHRINKING
  1690.     {
  1691.         ifcount 32
  1692.         {
  1693.             ifcount SHRUNKDONECOUNT move 0
  1694.             else ifcount SHRUNKCOUNT
  1695.             {
  1696.                 sizeto 42 36
  1697.                 ifgapzl 24
  1698.                 {
  1699.                     strength 0
  1700.                     sound SQUISHED
  1701.                     palfrom 48 64
  1702.                     break
  1703.                 }
  1704.             }
  1705.             else ifp ponsteroids count SHRUNKCOUNT
  1706.         }
  1707.         else
  1708.         {
  1709.             ifp ponsteroids count SHRUNKCOUNT
  1710.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1711.         }
  1712.     }
  1713.  
  1714.     else ifhitweapon
  1715.     {
  1716.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  1717.         else
  1718.         {
  1719.             ifmultiplayer
  1720.             {
  1721.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  1722.                 {
  1723.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  1724.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  1725.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  1726.                     else sound DUKE_DEAD
  1727.                 }
  1728.                 else
  1729.                 {
  1730.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  1731.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  1732.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  1733.                     else sound DUKE_LONGTERM_PAIN8
  1734.                 }
  1735.             }
  1736.             else
  1737.             {
  1738.                 ifphealthl YELLHURTSOUNDSTRENGTH
  1739.                 {
  1740.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  1741.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  1742.                     else sound DUKE_LONGTERM_PAIN4
  1743.                 }
  1744.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  1745.             }
  1746.         }
  1747.         ifstrength TOUGH
  1748.         {
  1749.             state headhitstate
  1750.             sound DUKE_GRUNT
  1751.             ifp pstanding action PFLINTCHING
  1752.         }
  1753.  
  1754.         ifwasweapon RPG
  1755.         {
  1756.             ifrnd 32 spawn BLOOD
  1757.             ifdead state standard_pjibs
  1758.             palfrom 48 52
  1759.             break
  1760.         }
  1761.         ifwasweapon RADIUSEXPLOSION
  1762.         {
  1763.             ifrnd 32 spawn BLOOD
  1764.             ifdead state standard_pjibs
  1765.             palfrom 48 52
  1766.             break
  1767.         }
  1768.         ifwasweapon FIREEXT
  1769.         {
  1770.             ifrnd 32 spawn BLOOD
  1771.             ifdead state standard_pjibs
  1772.             palfrom 48 52
  1773.             break
  1774.         }
  1775.  
  1776.         ifwasweapon SHRINKSPARK
  1777.         {
  1778.             palfrom 48 0 48
  1779.             move PSHRINKING // used as a var only.
  1780.             sound ACTOR_SHRINKING
  1781.             break
  1782.         }
  1783.  
  1784.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1785.         else ifwasweapon FREEZEBLAST
  1786.         {
  1787.             palfrom 48 0 0 48
  1788.             ifdead { sound SOMETHINGFROZE spritepal 1 action PFROZEN break }
  1789.         }
  1790.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1791.         else ifwasweapon KNEE palfrom 16 32
  1792.         else ifwasweapon FIRELASER palfrom 32 32
  1793.         state check_dead_thrown_back
  1794.         state random_wall_jibs
  1795.  
  1796.         break
  1797.     }
  1798.  
  1799.     ifaction PFLINTCHING
  1800.     {
  1801.         ifactioncount 2 action PSTAND
  1802.         break
  1803.     }
  1804.  
  1805.     ifinwater
  1806.     {
  1807.         ifaction PTREDWATER
  1808.         {
  1809.             ifp pwalking prunning action PSWIMMINGGO
  1810.         }
  1811.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1812.         else
  1813.         {
  1814.             ifaction PSWIMMING
  1815.             {
  1816.                 ifrnd 4 spawn WATERBUBBLE
  1817.                 ifactioncount 4
  1818.                     action PSWIMMINGWAIT
  1819.             }
  1820.             else ifaction PSWIMMINGWAIT
  1821.             {
  1822.                 ifactioncount 2
  1823.                     action PSWIMMINGGO
  1824.             }
  1825.             else ifaction PSWIMMINGGO
  1826.             {
  1827.                 ifactioncount 2
  1828.                     action PSWIMMING
  1829.             }
  1830.             else action PTREDWATER
  1831.         }
  1832.  
  1833.         ifrnd 4 spawn WATERBUBBLE // For effect
  1834.  
  1835.         break
  1836.     }
  1837.     else ifp pjetpack
  1838.     {
  1839.         ifhitspace shoot FIRELASER
  1840.         ifaction PJPHOUVER
  1841.         {
  1842.             ifactioncount 4
  1843.                 resetactioncount
  1844.         }
  1845.         else action PJPHOUVER
  1846.         break
  1847.     }
  1848.     else
  1849.     {
  1850.         ifaction PTREDWATER action PSTAND
  1851.         ifaction PSWIMMING action PSTAND
  1852.         ifaction PSWIMMINGWAIT action PSTAND
  1853.         ifaction PSWIMMINGGO action PSTAND
  1854.         ifaction PJPHOUVER action PFALLING
  1855.     }
  1856.  
  1857.     ifaction PFALLING
  1858.     {
  1859.         ifp ponground
  1860.             action PSTAND
  1861.         else
  1862.         {
  1863.             ifp pfalling break
  1864.             else state check_pstandard
  1865.         }
  1866.     }
  1867.  
  1868.     ifaction PDUCKING
  1869.     {
  1870.         ifgapzl 48
  1871.         {
  1872.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1873.         }
  1874.         else ifp pducking
  1875.         {
  1876.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1877.         }
  1878.         else
  1879.         {
  1880.             ifp pstanding action PSTAND
  1881.             else state check_pstandard
  1882.         }
  1883.     }
  1884.  
  1885.     else ifaction PCRAWLING
  1886.     {
  1887.         ifgapzl 48
  1888.         {
  1889.             ifp pstanding action PCRAWLING
  1890.         }
  1891.         else ifp pducking
  1892.         {
  1893.             ifp pstanding action PDUCKING
  1894.         }
  1895.         else
  1896.         {
  1897.             ifp pstanding action PSTAND
  1898.             else state check_pstandard
  1899.         }
  1900.     }
  1901.     else ifgapzl 48 action PDUCKING
  1902.  
  1903.     else ifaction PJUMPING
  1904.     {
  1905.         ifp ponground action PSTAND
  1906.         else ifactioncount 4 ifp pfalling action PFALLING
  1907.     }
  1908.  
  1909.     ifp pfalling action PFALLING
  1910.     else ifaction PSTAND state check_pstandard
  1911.     else ifaction PAKICKING
  1912.     {
  1913.         ifactioncount 2 action PSTAND
  1914.         break
  1915.     }
  1916.     else ifaction PWALK
  1917.     {
  1918.         ifp pfalling action PFALLING
  1919.         else ifp pstanding action PSTAND
  1920.         else ifp prunning action PRUN
  1921.         else ifp pwalkingback action PWALKBACK
  1922.         else ifp prunningback action PRUNBACK
  1923.         else ifp pjumping
  1924.             action PJUMPING
  1925.         else ifp pducking action PDUCKING
  1926.     }
  1927.  
  1928.     else ifaction PRUN
  1929.     {
  1930.         ifp pstanding action PSTAND
  1931.         else ifp pwalking action PWALK
  1932.         else ifp pwalkingback action PWALKBACK
  1933.         else ifp prunningback action PRUNBACK
  1934.         else ifp pjumping
  1935.             action PJUMPING
  1936.         else ifp pducking action PDUCKING
  1937.     }
  1938.  
  1939.     else ifaction PWALKBACK
  1940.     {
  1941.         ifp pstanding action PSTAND
  1942.         else ifp pwalking action PWALK
  1943.         else ifp prunning action PRUN
  1944.         else ifp prunningback action PRUNBACK
  1945.         else ifp pjumping
  1946.             action PJUMPING
  1947.         else ifp pducking action PDUCKING
  1948.     }
  1949.  
  1950.     else ifaction PRUNBACK
  1951.     {
  1952.         ifp pstanding action PSTAND
  1953.         else ifp pwalking action PWALK
  1954.         else ifp prunning action PRUN
  1955.         else ifp pwalkingback action PWALKBACK
  1956.         else ifp pjumping
  1957.             action PJUMPING
  1958.         else ifp pducking action PDUCKING
  1959.     }
  1960. enda
  1961.  
  1962. actor ORGANTIC TURRETSTRENGTH
  1963.     ifcount 48 resetcount
  1964.     else { ifcount 32 sizeto 32 32 }
  1965.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1966.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1967.     ifrnd 1 soundonce TURR_ROAM
  1968. enda
  1969.  
  1970. state rf
  1971.     ifrnd 128 cstat 4
  1972.     else cstat 0
  1973. ends
  1974.  
  1975.  
  1976. //
  1977. //
  1978. //      TROOP/LIZTROOP CODE
  1979. //
  1980. //
  1981.  
  1982. action ATROOPSTAND       0    1    5    1    1
  1983. action ATROOPSTAYSTAND  -2    1    5    1    1
  1984. action ATROOPWALKING     0    4    5    1   12
  1985. action ATROOPWALKINGBACK 15   4    5   -1   12
  1986. action ATROOPRUNNING     0    4    5    1    8
  1987. action ATROOPSHOOT      35    1    5    1   30
  1988. action ATROOPJETPACK    40    1    5    1    1
  1989. action ATROOPJETPACKILL 40    2    5    1   50
  1990. action ATROOPFLINTCH    50    1    1    1    6
  1991. action ATROOPDYING      54    2    1    1   21
  1992. action ATROOPDEAD       54
  1993. action ATROOPPLAYDEAD   54
  1994. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1995. action ATROOPSUFFERING  59    2    1    1   21
  1996. action ATROOPDUCK       64    1    5    1    3
  1997. action ATROOPDUCKSHOOT  64    2    5    1   25
  1998. action ATROOPABOUTHIDE  74    1    1    1   25
  1999. action ATROOPHIDE       79    1    1    1   25
  2000. action ATROOPREAPPEAR   74    1    1    1   25
  2001. action ATROOPFROZEN      0    1    5
  2002.  
  2003. move TROOPWALKVELS 72
  2004. move TROOPWALKVELSBACK -72
  2005. move TROOPJETPACKVELS 64 -84
  2006. move TROOPJETPACKILLVELS 192 -38
  2007. move TROOPRUNVELS 108
  2008. move TROOPSTOPPED
  2009. move DONTGETUP
  2010. move SHRUNKVELS 32
  2011.  
  2012. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2013. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  2014. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  2015. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK faceplayer
  2016. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  2017. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  faceplayer
  2018. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  faceplayer
  2019. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  2020. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  2021. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED faceplayer
  2022.  
  2023. state troophidestate
  2024.     ifaction ATROOPREAPPEAR
  2025.     {
  2026.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  2027.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  2028.     }
  2029.     else ifaction ATROOPWALKING
  2030.     {
  2031.         ifpdistl 2448 ifpdistg 1024
  2032.         {
  2033.             ifceilingdistl 48 break
  2034.             ifp pfacing break
  2035.  
  2036.             ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  2037.         }
  2038.     }
  2039.     else ifaction ATROOPHIDE
  2040.     {
  2041.         ifactioncount 2
  2042.         {
  2043.             spawn TRANSPORTERSTAR
  2044.             sound TELEPORTER
  2045.             action ATROOPWALKING move TROOPWALKVELS faceplayer
  2046.             cstat 32768
  2047.         }
  2048.         else
  2049.         {
  2050.             sizeto 0 40
  2051.             sizeto 0 40
  2052.             sizeto 0 40
  2053.             sizeto 0 40
  2054.             spawn FRAMEEFFECT1
  2055.         }
  2056.     }
  2057.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  2058. ends
  2059.  
  2060.  
  2061. state troopgunnashoot
  2062.     ifp palive
  2063.     {
  2064.         ifpdistl 1024 ai AITROOPSHOOTING
  2065.         else ifactornotstayput
  2066.         {
  2067.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  2068.             {
  2069.                 ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
  2070.                 else
  2071.                 {
  2072.                     ifpdistl 1100 ai AITROOPFLEEING
  2073.                     else
  2074.                     {
  2075.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  2076.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  2077.                     }
  2078.                 }
  2079.             }
  2080.         }
  2081.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  2082.     }
  2083. ends
  2084.  
  2085. state troopseekstate
  2086.     state troopgunnashoot
  2087.     ifinwater { ai AITROOPJETPACK break }
  2088.     ifcansee
  2089.     {
  2090.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  2091.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  2092.         else ifrnd 2
  2093.         {
  2094.             ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
  2095.             ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
  2096.         }
  2097.     }
  2098.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  2099.     ifrnd 1
  2100.     {
  2101.         ifrnd 128 soundonce PRED_ROAM
  2102.         else soundonce PRED_ROAM2
  2103.     }
  2104. ends
  2105.  
  2106. state troopduckstate
  2107.     ifaction ATROOPDUCK
  2108.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  2109.     else ifaction ATROOPDUCKSHOOT
  2110.     {
  2111.         ifcount 64
  2112.         {
  2113.             ifmove DONTGETUP resetcount
  2114.             else
  2115.             {
  2116.                 ifpdistl 1100
  2117.                     ai AITROOPFLEEING
  2118.                 else ai AITROOPSEEKPLAYER
  2119.             }
  2120.         }
  2121.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  2122.     }
  2123. ends
  2124.  
  2125. state troopshootstate
  2126.     ifactioncount 2
  2127.     {
  2128.         ifcanshoottarget
  2129.         {
  2130.             shoot MORTER sound PRED_ATTACK resetactioncount
  2131.             ifrnd 16 shoot FIRELASER
  2132.             ifrnd 128 ai AITROOPSEEKPLAYER
  2133.             ifcount 24
  2134.             {
  2135.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  2136.                 else
  2137.                 {
  2138.                     ifpdistg 1596 ai AITROOPFLEEING
  2139.                     else ai AITROOPFLEEINGBACK
  2140.                 }
  2141.             }
  2142.         }
  2143.         else ai AITROOPSEEKPLAYER
  2144.     }
  2145. ends
  2146.  
  2147. state troopfleestate
  2148.     ifactioncount 7
  2149.     {
  2150.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  2151.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  2152.     }
  2153.     ifnotmoving
  2154.     {
  2155.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  2156.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  2157.     }
  2158. ends
  2159.  
  2160. state troopdying
  2161.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }      
  2162.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDYING } }
  2163.     else { state rf move 0 action ATROOPDYING }
  2164.     ifrnd 16 state hurt_jibs
  2165.     ifrnd 1 { move 0 cstat 0 action ATROOPSUFFERDEAD break }
  2166.     ends
  2167.  
  2168. state checktroophit
  2169.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2170.     state standard_jibs
  2171.     state ultragore_jibs
  2172.     ifdead
  2173.     {
  2174.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ATROOPFROZEN strength 0 break }
  2175.         state standard_jibs
  2176.         state ultragore_jibs
  2177.         state ultragore_jibs
  2178.         state drop_ammo
  2179.         state jib_sounds
  2180.         state random_wall_jibs
  2181.         addkills 1
  2182.  
  2183.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2184.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2185.         else { sound PRED_DYING ifrnd 32 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  2186.     }
  2187.     else
  2188.     {
  2189.         state random_wall_jibs
  2190.         sound PRED_PAIN
  2191.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  2192.         else iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  2193.     }
  2194. ends
  2195.  
  2196. state troopjetpackstate
  2197.     ifaction ATROOPJETPACKILL
  2198.     {
  2199.         ifcansee ifactioncount 2
  2200.         {
  2201.             resetactioncount
  2202.             sound PRED_ATTACK
  2203.             shoot FIRELASER
  2204.         }
  2205.  
  2206.         ifp phigher ai AITROOPJETPACK
  2207.         else ifinwater ai AITROOPJETPACK
  2208.         else ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  2209.     }
  2210.     else ifcount 48 ifcansee
  2211.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  2212. ends
  2213.  
  2214. state checksquished
  2215.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  2216. ends
  2217.  
  2218. state troopsufferingstate
  2219.     ifactioncount 2
  2220.     {
  2221.         ifrnd 16 spawn WATERDRIP
  2222.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2223.     }
  2224. ends
  2225.  
  2226. state troopshrunkstate
  2227.     ifcount SHRUNKDONECOUNT action ATROOPDEAD 
  2228.     ifcount SHRUNKDONECOUNT killit
  2229.     else ifcount SHRUNKCOUNT sizeto 48 40 
  2230.     else state genericshrunkcode
  2231. ends
  2232.  
  2233. state troopcode fall
  2234.     ifinwater ifrnd 1 spawn WATERBUBBLE
  2235.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  2236.     else ifaction ATROOPFROZEN
  2237.     {
  2238.         ifcount THAWTIME { ai AITROOPSEEKENEMY getlastpal }
  2239.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2240.         ifhitweapon
  2241.         {
  2242.             ifwasweapon FREEZEBLAST { strength 0 break }
  2243.             addkills 1
  2244.  
  2245.             ifrnd 84 spawn BLOODPOOL
  2246.             lotsofglass 30
  2247.             sound GLASS_BREAKING
  2248.             killit
  2249.         }
  2250.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2251.         break
  2252.     }
  2253.     else ifaction ATROOPPLAYDEAD
  2254.     {
  2255.         ifhitweapon
  2256.         {
  2257.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2258.             break
  2259.         }
  2260.         else state checksquished
  2261.  
  2262.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  2263.         else ifp pfacing resetcount
  2264.  
  2265.         break
  2266.     }
  2267.     else ifaction ATROOPDEAD
  2268.     {
  2269.         strength 0
  2270.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  2271.         ifhitweapon
  2272.         {
  2273.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2274.             break
  2275.         }
  2276.         else state checksquished
  2277.         break
  2278.     }
  2279.     else ifaction ATROOPSUFFERDEAD
  2280.     {
  2281.         ifactioncount 2
  2282.         {
  2283.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  2284.             else { soundonce PRED_DYING action ATROOPDEAD }
  2285.         }
  2286.     }
  2287.     else ifaction ATROOPDYING { state troopdying break }
  2288.     else ifaction ATROOPSUFFERING
  2289.         { state troopsufferingstate ifhitweapon state checktroophit break }
  2290.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  2291.     else
  2292.     {
  2293.         ifai AITROOPSEEKPLAYER state troopseekstate
  2294.         else ifai AITROOPJETPACK
  2295.         {
  2296.             state troopjetpackstate
  2297.             ifinwater { } else soundonce DUKE_JETPACK_IDLE
  2298.         }
  2299.         else ifai AITROOPSEEKENEMY state troopseekstate
  2300.         else ifai AITROOPSHOOTING state troopshootstate
  2301.         else ifai AITROOPFLEEING state troopfleestate
  2302.         else ifai AITROOPFLEEINGBACK state troopfleestate
  2303.         else ifai AITROOPDODGE state troopseekstate
  2304.         else ifai AITROOPDUCKING state troopduckstate
  2305.         else ifai AITROOPSHRUNK state troopshrunkstate
  2306.         else ifai AITROOPHIDE { state troophidestate break }
  2307.     }
  2308.  
  2309.     ifhitweapon state checktroophit else state checksquished
  2310. ends
  2311.  
  2312.  
  2313. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  2314. actor LIZTROOPDUCKING TROOPSTRENGTH
  2315.     ai AITROOPDUCKING cactor LIZTROOP
  2316.     ifgapzl 48 move DONTGETUP
  2317. enda
  2318.  
  2319. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  2320. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2321. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2322. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  2323. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  2324.  
  2325. action ALIZWALKING       0     4    5    1    15
  2326. action ALIZRUNNING       0     4    5    1    11
  2327. action ALIZTHINK         20    2    5    1    40
  2328. action ALIZSCREAM        30    1    5    1    2
  2329. action ALIZJUMP          45    3    5    1    20
  2330. action ALIZFALL          55
  2331. action ALIZSHOOTING      70    2    5    1    7
  2332. action ALIZDYING         65    1    
  2333. action ALIZLYINGDEAD     65    1
  2334. action ALIZFROZEN         0    1    5
  2335.  
  2336. move LIZWALKVEL 72
  2337. move LIZRUNVEL 192
  2338. move LIZJUMPVEL 184
  2339. move LIZSTOP
  2340.  
  2341. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  2342. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  2343. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL seekplayer
  2344. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  2345. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP faceplayer
  2346. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
  2347. ai AILIZTHINK ALIZTHINK LIZSTOP faceplayerslow
  2348. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS fleeenemy
  2349. ai AILIZSPIT ALIZSCREAM LIZSTOP faceplayerslow
  2350. ai AILIZDYING ALIZDYING LIZSTOP faceplayer
  2351.  
  2352. state lizseekstate
  2353.  
  2354.     ifactornotstayput
  2355.     {
  2356.         ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2357.         ifai AILIZCHARGEENEMY
  2358.         {
  2359.             ifcount 72 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2360.             ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
  2361.         }
  2362.         else ifpdistg 4096 { ifrnd 92 { ifcount 48 ifcanshoottarget ai AILIZSHOOTENEMY } else ifcount 24 { ai AILIZCHARGEENEMY break } }
  2363.  
  2364.         iffloordistl 16 { ifcount 48 ifnotmoving ifcansee { ai AILIZJUMPENEMY break } }
  2365.         else { ifpdistg 1280 ai AILIZJUMPENEMY break }
  2366.  
  2367.         ifrnd 4 ifnotmoving operate
  2368.         else ifrnd 1 ifbulletnear
  2369.         {
  2370.             ifgapzl 128 ai AILIZDODGE
  2371.             else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2372.         }
  2373.     }
  2374.     else
  2375.     {
  2376.         ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY }
  2377.         ifcount 16 ifrnd 32 move LIZWALKVEL randomangle geth
  2378.     }
  2379.  
  2380. ends
  2381.  
  2382. state lizshrunkstate
  2383.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2384.     else ifcount SHRUNKCOUNT sizeto 48 40
  2385.     else state genericshrunkcode
  2386. ends
  2387.  
  2388. state lizfleestate
  2389.     ifcount 16 { ifrnd 48 ifp palive ifcansee ai AILIZSPIT }
  2390.     else { iffloordistl 16 { } else ai AILIZGETENEMY break }
  2391. ends
  2392.  
  2393. state lizthinkstate
  2394.     ifrnd 8 soundonce CAPT_ROAM
  2395.     ifactioncount 3
  2396.     {
  2397.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  2398.         else ifrnd 96 ai AILIZGETENEMY
  2399.     }
  2400.     else ifactioncount 2 ifrnd 1 spawn FECES
  2401.     ifrnd 1 ifbulletnear
  2402.     {
  2403.         ifgapzl 96 ai AILIZDODGE
  2404.         else { ifrnd 128 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2405.     }
  2406. ends
  2407.  
  2408. state lizshootstate
  2409.     ifcount 20 ifrnd 8
  2410.     {
  2411.         ifcansee ifpdistl 2048 { ifrnd 128 ai AILIZFLEENEMY break }
  2412.         ifrnd 80 ai AILIZTHINK else ai AILIZGETENEMY
  2413.     }
  2414.     ifactioncount 2
  2415.     {
  2416.         ifcansee
  2417.         {
  2418.             ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount }
  2419.             else ai AILIZTHINK
  2420.         }
  2421.         else ai AILIZGETENEMY
  2422.     }
  2423. ends
  2424.  
  2425. state checklizhit
  2426.     spawn BLOOD
  2427.     state standard_jibs
  2428.     state ultragore_jibs
  2429.     ifdead
  2430.     {
  2431.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ALIZFROZEN strength 0 break }
  2432.         state ultragore_jibs
  2433.         state drop_chaingun
  2434.         addkills 1
  2435.  
  2436.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2437.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2438.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  2439.         sound CAPT_DYING
  2440.     }
  2441.     else
  2442.     {
  2443.         sound CAPT_PAIN
  2444.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK break }
  2445.         state random_wall_jibs
  2446.         ifp palive ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2447.     }
  2448. ends
  2449.  
  2450. state lizjumpstate
  2451.     ifaction ALIZFALL { iffloordistl 16 ai AILIZGETENEMY }
  2452.     else ifactioncount 3 action ALIZFALL
  2453. ends
  2454.  
  2455. state lizdyingstate
  2456.     ifrnd 16 state hurt_jibs
  2457.     ifaction ALIZLYINGDEAD
  2458.     {
  2459.         action ALIZDYING
  2460.         ifrnd 16 state hurt_jibs
  2461.         strength 0
  2462.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs }
  2463.         ifcount RESPAWNACTORTIME ifrespawn
  2464.         {
  2465.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  2466.         }
  2467.     }
  2468.     else ifai ALIZLYINGDEAD ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZDYING }
  2469.     ifactioncount 134 killit
  2470. ends
  2471.  
  2472.  
  2473. state lizdodgestate
  2474.     ifcount 13 ai AILIZGETENEMY
  2475. ends
  2476.  
  2477. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  2478. actor LIZMANSPITTING LIZSTRENGTH ai AILIZSPIT cactor LIZMAN enda
  2479. actor LIZMANJUMP LIZSTRENGTH ai AILIZJUMPENEMY cactor LIZMAN enda
  2480.  
  2481. actor LIZMAN LIZSTRENGTH fall
  2482.     state checksquished
  2483.     ifai 0 ai AILIZGETENEMY
  2484.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  2485.     else ifaction ALIZFROZEN
  2486.     {
  2487.         ifcount THAWTIME { ai AILIZGETENEMY getlastpal }
  2488.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2489.  
  2490.         ifhitweapon
  2491.         {
  2492.             ifwasweapon FREEZEBLAST { strength 0 break }
  2493.             addkills 1
  2494.  
  2495.             ifrnd 84 spawn BLOODPOOL
  2496.             lotsofglass 30
  2497.             sound GLASS_BREAKING
  2498.             killit
  2499.         }
  2500.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2501.         break
  2502.     }
  2503.     else ifai AILIZJUMPENEMY state lizjumpstate
  2504.     else
  2505.     {
  2506.         fall
  2507.         ifai AILIZGETENEMY state lizseekstate
  2508.         else ifai AILIZCHARGEENEMY state lizseekstate
  2509.         else ifai AILIZDODGE state lizdodgestate
  2510.         else ifai AILIZSHOOTENEMY state lizshootstate
  2511.         else ifai AILIZFLEENEMY state lizfleestate
  2512.         else ifai AILIZTHINK state lizthinkstate
  2513.         else ifai AILIZSHRUNK state lizshrunkstate
  2514.         else ifai AILIZDYING state lizdyingstate
  2515.         else ifai AILIZSPIT
  2516.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  2517.     }
  2518.  
  2519.     ifai AILIZSHRUNK break
  2520.     ifhitweapon state checklizhit
  2521. enda
  2522.  
  2523. action DRONEFRAMES     0   1   7   1   1
  2524. action DRONESCREAM     0   1   7   1   1
  2525. move DRONERUNVELS 128 64
  2526. move DRONERUNUPVELS 128 -64
  2527. move DRONEBULLVELS 252 -64
  2528. move DRONEBACKWARDS -64 -64
  2529. move DRONERISE 32 -32
  2530. move DRONESTOPPED -16
  2531.  
  2532. ai AIDRONEGETE DRONESCREAM DRONERUNVELS faceplayerslow getv
  2533. ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED faceplayerslow
  2534. ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS faceplayer getv
  2535. ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS faceplayerslow
  2536. ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS faceplayer
  2537. ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
  2538. ai AIDRONEDODGE DRONEFRAMES DRONEBULLVELS dodgebullet geth
  2539. ai AIDRONEDODGEUP DRONEFRAMES DRONERISE getv geth
  2540.  
  2541. state checkdronehitstate
  2542.     state ultragore_jibs
  2543.     ifdead
  2544.     {
  2545.         addkills 1
  2546.         debris SCRAP1 8
  2547.         debris SCRAP2 4
  2548.         debris SCRAP3 7
  2549.         spawn EXPLOSION2
  2550.         sound RPG_EXPLODE
  2551.         hitradius 2048 15 20 25 30
  2552.         killit
  2553.     }
  2554.     else
  2555.     {
  2556.         sound DRON_PAIN
  2557.         ifbulletnear
  2558.         {
  2559.             ifceilingdistl 64 ifrnd 48 ai AIDRONEDODGE
  2560.             ai AIDRONEDODGEUP
  2561.         }
  2562.         else ai AIDRONEGETE
  2563.     }
  2564. ends
  2565.  
  2566. state droneshrunkstate
  2567.     ifcount 24 state delete_enemy
  2568.     else sizeto 1 1
  2569. ends
  2570.  
  2571. state checkdronenearplayer
  2572.  
  2573.     ifp palive ifpdistl 1596
  2574.     {
  2575.         ifcount 8
  2576.         {
  2577.             addkills 1
  2578.             sound DRON_ATTACK2
  2579.             debris SCRAP1 8
  2580.             debris SCRAP2 4
  2581.             debris SCRAP3 7
  2582.             spawn EXPLOSION2
  2583.             sound RPG_EXPLODE
  2584.             hitradius 2048 15 20 25 30
  2585.             killit
  2586.         }
  2587.         else ifcount 3 { } else sound LASERTRIP_ARMING
  2588.     }
  2589.  
  2590. ends
  2591.  
  2592. state dronegetstate
  2593.     ifrnd 192
  2594.     {
  2595.         ifcansee
  2596.         {
  2597.             ifbulletnear { ai AIDRONEDODGE break }
  2598.             ifmove DRONEBULLVELS
  2599.             {
  2600.                 ifcount 64 ai AIDRONEPULLBACK
  2601.                 else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
  2602.             }
  2603.             else ifcount 32
  2604.             {
  2605.                 ifp phigher move DRONEBULLVELS geth getv
  2606.                 else move DRONEBULLVELS geth
  2607.             }
  2608.         }
  2609.         else ifrnd 1 operate
  2610.     }
  2611. ends
  2612.  
  2613. state dronedodgestate
  2614.     ifai AIDRONEDODGEUP
  2615.     {
  2616.        ifcount 8 ai AIDRONEGETE
  2617.        else ifnotmoving ai AIDRONEGETE
  2618.     }
  2619.     else
  2620.     {
  2621.         ifcount 8 ai AIDRONEGETE
  2622.         else ifnotmoving ai AIDRONEGETE
  2623.     }
  2624. ends
  2625.  
  2626. actor DRONE DRONESTRENGTH
  2627.     state checksquished
  2628.     state checkdronenearplayer
  2629.  
  2630.     ifrnd 2 fall
  2631.     else soundonce DRON_JETSND
  2632.  
  2633.     ifaction 0 ai AIDRONEGETE
  2634.  
  2635.     else ifai AIDRONEWAIT
  2636.     {
  2637.         ifactioncount 4 ifrnd 16
  2638.             ifcansee { sound DRON_ATTACK1 ifp phigher ai AIDRONEGETUP else ai AIDRONEGETE }
  2639.     }
  2640.     else ifai AIDRONEGETE state dronegetstate
  2641.     else ifai AIDRONEGETUP state dronegetstate
  2642.     else ifai AIDRONEPULLBACK { ifcount 32 ai AIDRONEWAIT }
  2643.     else ifai AIDRONEHIT { ifcount 8 ai AIDRONEWAIT }
  2644.     else ifai AIDRONESHRUNK state droneshrunkstate
  2645.     else ifai AIDRONEDODGE state dronedodgestate
  2646.     else ifai AIDRONEDODGEUP state dronedodgestate
  2647.  
  2648.     ifhitweapon state checkdronehitstate
  2649.  
  2650.     ifrnd 1 soundonce DRON_ROAM
  2651.  
  2652. enda
  2653.  
  2654.  
  2655. action AOCTAWALK        0   3   5   1   15
  2656. action AOCTASTAND       0   1   5   1   15
  2657. action AOCTASCRATCH     0   4   5   1   15
  2658. action AOCTAHIT        30   1   1   1   10
  2659. action AOCTASHOOT      20   1   5   1   10
  2660. action AOCTADYING      38   1   1   1    1
  2661. action AOCTADEAD       38   1   1   1    1
  2662. action AOCTAFROZEN      0   1   5
  2663.  
  2664. move OCTAWALKVELS 96 -30
  2665. move OCTAUPVELS 96 -70
  2666. move OCTASTOPPED 0 -30
  2667. move OCTAINWATER 96 24
  2668.  
  2669. ai AIOCTAGETENEMY AOCTAWALK OCTAWALKVELS seekplayer
  2670. ai AIOCTASHOOTENEMY AOCTASHOOT OCTASTOPPED faceplayer
  2671. ai AIOCTASCRATCHENEMY AOCTASCRATCH OCTASTOPPED faceplayer
  2672. ai AIOCTAHIT AOCTAHIT OCTASTOPPED faceplayer
  2673. ai AIOCTASHRUNK AOCTAWALK SHRUNKVELS faceplayer
  2674. ai AIOCTADYING AOCTADYING OCTASTOPPED faceplayer
  2675.  
  2676. state octagetenemystate
  2677.  
  2678.     ifcansee
  2679.     {
  2680.         ifactioncount 32 { ifrnd 48 ifcanshoottarget { sound OCTA_ATTACK1 ai AIOCTASHOOTENEMY break } }
  2681.         else ifpdistl 1280 ai AIOCTASCRATCHENEMY
  2682.     }
  2683.  
  2684. ends
  2685.  
  2686. state octascratchenemystate
  2687.     ifpdistg 1280 ai AIOCTAGETENEMY
  2688.     else ifcount 32 { resetcount sound OCTA_ATTACK2 palfrom 8 32 addphealth OCTASCRATCHINGPLAYER }
  2689. ends
  2690.  
  2691. state octashootenemystate
  2692.     ifcount 25 { ifcount 27 ai AIOCTAGETENEMY }
  2693.     else ifcount 24 shoot COOLEXPLOSION1
  2694.     else ifactioncount 6 resetactioncount
  2695. ends
  2696.  
  2697. state checkoctahitstate
  2698.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIOCTASHRUNK }
  2699.     else
  2700.     {
  2701.         ifdead
  2702.         {
  2703.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action AOCTAFROZEN strength 0 break }
  2704.             addkills 1
  2705.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2706.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2707.             else { state rf ai AIOCTADYING }
  2708.             sound OCTA_DYING
  2709.         }
  2710.         else
  2711.         {
  2712.             ifwasweapon RPG
  2713.             {
  2714.                 sound OCTA_DYING
  2715.                 addkills 1
  2716.                 state standard_jibs
  2717.                 killit
  2718.             }
  2719.             sound OCTA_PAIN spawn BLOOD
  2720.             ifrnd 64 ai AIOCTAHIT
  2721.  
  2722.         }
  2723.     }
  2724.     state random_wall_jibs
  2725. ends
  2726.  
  2727. state octashrunkstate
  2728.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2729.     else ifcount SHRUNKCOUNT sizeto 48 40
  2730.     else state genericshrunkcode
  2731. ends
  2732.  
  2733. state octadyingstate
  2734.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move OCTASTOPPED action AOCTADYING }
  2735.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2736.     ifrnd 16 state hurt_jibs
  2737.     ifrnd 1 { move 0 cstat 0 action AOCTADEAD break }
  2738. ends
  2739.  
  2740. actor OCTABRAINSTAYPUT OCTASTRENGTH ai AIOCTAGETENEMY cactor OCTABRAIN enda
  2741.  
  2742. actor OCTABRAIN OCTASTRENGTH fall
  2743.  
  2744.     state checksquished
  2745.  
  2746.     ifai 0 ai AIOCTAGETENEMY
  2747.     else ifaction AOCTADEAD
  2748.     {
  2749.         strength 0
  2750.         ifcount RESPAWNACTORTIME ifrespawn
  2751.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength OCTASTRENGTH ai AIOCTAGETENEMY }
  2752.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2753.         break
  2754.     }
  2755.     else ifaction AOCTAFROZEN
  2756.     {
  2757.         ifcount THAWTIME { ai AIOCTAGETENEMY getlastpal }
  2758.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2759.  
  2760.         ifhitweapon
  2761.         {
  2762.             addkills 1
  2763.             ifwasweapon FREEZEBLAST { strength 0 break }
  2764.  
  2765.             lotsofglass 30
  2766.             ifrnd 84 spawn BLOODPOOL
  2767.             sound GLASS_BREAKING
  2768.             killit
  2769.         }
  2770.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2771.         break
  2772.     }
  2773.     else
  2774.     {
  2775.         ifrnd 1 soundonce OCTA_ROAM
  2776.  
  2777.         ifai AIOCTAGETENEMY state octagetenemystate
  2778.         else ifai AIOCTAHIT { ifcount 8 ai AIOCTASHOOTENEMY }
  2779.         else ifai AIOCTADYING { state octadyingstate break }
  2780.         else ifai AIOCTASCRATCHENEMY state octascratchenemystate
  2781.         else ifai AIOCTASHOOTENEMY state octashootenemystate
  2782.         else ifai AIOCTASHRUNK state octashrunkstate
  2783.  
  2784.         ifmove OCTAUPVELS { } else ifp phigher move OCTAUPVELS seekplayer
  2785.         else ifmove OCTAINWATER { } else ifinwater move OCTAINWATER seekplayer
  2786.  
  2787.         ifhitweapon state checkoctahitstate
  2788.     }
  2789. enda
  2790.  
  2791.  
  2792.  
  2793.  
  2794. action APIGWALK         0  4 5 1 20
  2795. action APIGRUN          0  4 5 1 11
  2796. action APIGSHOOT        30 2 5 1 58
  2797. action APIGCOCK         25 1 5 1 16
  2798. action APIGSTAND        30 1 5 1 1
  2799. action APIGDIVE         40 2 5 1 40
  2800. action APIGDIVESHOOT    45 2 5 1 58
  2801. action APIGDYING        60 1 1 1 
  2802. action APIGHIT          55 1 1 1 10
  2803. action APIGDEAD         60 1 1 1 1
  2804. action APIGFROZEN        0 1 5
  2805.  
  2806. move PIGWALKVELS 72
  2807. move PIGRUNVELS 108
  2808. move PIGSTOPPED
  2809.  
  2810. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2811. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED faceplayer
  2812. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2813. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED faceplayer
  2814. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2815. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2816. ai AIPIGDIVING APIGDIVE PIGSTOPPED faceplayer
  2817. ai AIPIGDYING APIGDYING PIGSTOPPED faceplayer
  2818. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2819. ai AIPIGHIT APIGHIT PIGSTOPPED faceplayer
  2820.  
  2821. state pigseekenemystate
  2822.  
  2823.     ifai AIPIGCHARGE
  2824.     {
  2825.         ifcansee ifpdistl 3084
  2826.         {
  2827.             ifnotmoving ai AIPIGSEEKENEMY
  2828.             else ai AIPIGDIVING
  2829.         }
  2830.         break
  2831.     }
  2832.     else iffloordistl 32
  2833.     {
  2834.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2835.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2836.     }
  2837.  
  2838.     ifrnd 128 ifcansee
  2839.     {
  2840.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2841.         iffloordistl 32
  2842.         {
  2843.             ifpdistl 1024 ifp palive ifcanshoottarget
  2844.                 { ai AIPIGSHOOTENEMY break }
  2845.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2846.         }
  2847.     }
  2848. ends
  2849.  
  2850.  
  2851. state pigshootenemystate
  2852. //    ifcansee
  2853.     {
  2854.         ifcount 12 { } else ifcount 11
  2855.         {
  2856.             ifcanshoottarget { sound PIG_ATTACK shoot RPG shoot RPG shoot RPG shoot RPG shoot SHOTGUN }
  2857.             else ai AIPIGSEEKENEMY
  2858.         }
  2859.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2860.         ifcount 48 { } else ifcount 47
  2861.         {
  2862.             ifcanshoottarget { sound PIG_ATTACK shoot RPG shoot RPG shoot RPG shoot RPG shoot RPG }
  2863.             else ai AIPIGSEEKENEMY
  2864.         }
  2865.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2866.         ifcount 72
  2867.         {
  2868.             ifrnd 64 resetcount
  2869.             else
  2870.             {
  2871.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2872.                 else ai AIPIGSEEKENEMY
  2873.             }
  2874.         }
  2875.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2876.     }
  2877.     else ai AIPIGSEEKENEMY
  2878. ends
  2879.  
  2880. state pigfleeenemystate
  2881.     ifactioncount 8 ai AIPIGSEEKENEMY
  2882.     else ifnotmoving ai AIPIGSEEKENEMY
  2883. ends
  2884.  
  2885. state pigdivestate
  2886.     ifaction APIGDIVESHOOT
  2887.     {
  2888.         ifcansee
  2889.         {
  2890.             ifcount 12 { } else ifcount 11
  2891.             {
  2892.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2893.                 else ai AIPIGSEEKENEMY
  2894.             }
  2895.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2896.             ifcount 48 { } else ifcount 47
  2897.             {
  2898.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2899.                 else ai AIPIGSEEKENEMY
  2900.             }
  2901.             ifcount 60 { } else ifcount 59
  2902.             {
  2903.                 sound SHOTGUN_COCK
  2904.                 ifgapzl 32 ai AIPIGDIVING
  2905.                 else
  2906.                 {
  2907.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2908.                     else ai AIPIGSEEKENEMY
  2909.                 }
  2910.             }
  2911.         }
  2912.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2913.     }
  2914.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2915. ends
  2916.  
  2917. state checkpighitstate
  2918.     state standard_jibs
  2919.     state ultragore_jibs
  2920.     spawn BLOOD
  2921.     ifdead
  2922.     {
  2923.         state random_wall_jibs
  2924.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2925.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action APIGFROZEN strength 0 break }
  2926.         state standard_jibs
  2927.         state ultragore_jibs
  2928.         state ultragore_jibs
  2929.  
  2930.         addkills 1
  2931.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2932.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2933.         ai AIPIGDYING sound PIG_DYING
  2934.     }
  2935.     else
  2936.     {
  2937.         sound PIG_PAIN
  2938.         state random_wall_jibs
  2939.  
  2940.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIPIGSHRINK }
  2941.         else ifrnd 64 ai AIPIGHIT
  2942.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2943.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2944.     }
  2945. ends
  2946.  
  2947. state pigshrinkstate
  2948.     ifcount SHRUNKDONECOUNT ai AIPIGSEEKENEMY
  2949.     else ifcount SHRUNKCOUNT sizeto 48 40
  2950.     else state genericshrunkcode
  2951. ends
  2952.  
  2953. state pigdyingstate
  2954.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDYING move PIGSTOPPED }
  2955.     ifrnd 16 state hurt_jibs
  2956.     ifrnd 1 { move 0 cstat 0 action APIGDEAD break } 
  2957. ends
  2958.  
  2959.  
  2960.  
  2961. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2962. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2963. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2964.     state checksquished
  2965.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2966.     else ifaction APIGDEAD
  2967.     {
  2968.         ifrespawn ifcount RESPAWNACTORTIME
  2969.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2970.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2971.     }
  2972.     else ifaction APIGFROZEN
  2973.     {
  2974.         ifcount THAWTIME { ai AIPIGSEEKENEMY getlastpal }
  2975.         else ifcount FROZENDRIPTIME ifrnd 8 spawn WATERDRIP
  2976.  
  2977.         ifhitweapon
  2978.         {
  2979.             ifwasweapon FREEZEBLAST { strength 0 break }
  2980.             addkills 1
  2981.  
  2982.             lotsofglass 30
  2983.             ifrnd 84 spawn BLOODPOOL
  2984.             sound GLASS_BREAKING
  2985.             killit
  2986.         }
  2987.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2988.         break
  2989.     }
  2990.     else ifai AIPIGDYING state pigdyingstate
  2991.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2992.     else ifai AIPIGSHRINK state pigshrinkstate
  2993.     else
  2994.     {
  2995.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2996.         else ifai AIPIGDODGE state pigseekenemystate
  2997.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2998.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2999.         else ifai AIPIGDIVING state pigdivestate
  3000.         else ifai AIPIGCHARGE state pigseekenemystate
  3001.         ifhitweapon state checkpighitstate
  3002.         ifrnd 1
  3003.         {
  3004.             ifrnd 32 soundonce PIG_ROAM
  3005.             else ifrnd 64 soundonce PIG_ROAM2
  3006.             else soundonce PIG_ROAM3
  3007.         }
  3008.     }
  3009. enda
  3010.  
  3011.  
  3012.  
  3013.  
  3014. action ABOSS1WALK                0  4  5  1  12
  3015. action ABOSS1FROZEN              30 1  5
  3016. action ABOSS1RUN                 0  6  5  1  5
  3017. action ABOSS1SHOOT               30 2  5  1  4
  3018. action ABOSS1LOB                 40 2  5  1  35
  3019. action ABOSS1DYING              50 5  1  1  50
  3020. action BOSS1FLINTCH             50 1  1  1  1
  3021. action ABOSS1DEAD               55
  3022.  
  3023. move PALBOSS1SHRUNKRUNVELS 32
  3024. move PALBOSS1RUNVELS 128
  3025. move BOSS1WALKVELS 208
  3026. move BOSS1RUNVELS 296
  3027. move BOSS1STOPPED
  3028.  
  3029. ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
  3030. ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS faceplayer
  3031. ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED faceplayer
  3032. ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED faceplayer // faceplayersmart
  3033. ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED faceplayer
  3034. ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS furthestdir
  3035.  
  3036. state boss1palshrunkstate
  3037.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3038.     else ifcount SHRUNKCOUNT sizeto 40 40
  3039.     else state genericshrunkcode
  3040. ends
  3041.  
  3042. state checkboss1seekstate
  3043.     ai AIBOSS1SEEKENEMY
  3044.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3045.         move PALBOSS1RUNVELS seekplayer
  3046. ends
  3047.  
  3048. state boss1runenemystate
  3049.     ifpdistl 2048 { ifp palive ai AIBOSS1SHOOTENEMY break }
  3050.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS1SEEKENEMY } }
  3051.     else ai AIBOSS1SEEKENEMY
  3052. ends
  3053.  
  3054. state boss1seekenemystate
  3055.     ifrnd 2 soundonce BOS1_ROAM
  3056.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  3057.  
  3058.     ifpdistl 2548 ifp palive { ai AIBOSS1SHOOTENEMY break }
  3059.  
  3060.     ifcansee ifcount 32
  3061.     {
  3062.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSS1SHOOTENEMY }
  3063.         else ifpdistg 2548 ifrnd 192
  3064.             ifcanshoottarget
  3065.             {
  3066.                 ifrnd 64
  3067.                 {
  3068.                     ai AIBOSS1RUNENEMY
  3069.                     ifspritepal 0 { } else move PALBOSS1RUNVELS seekplayer
  3070.                 }
  3071.                 else ai AIBOSS1LOBBED
  3072.             }
  3073.     }
  3074.  
  3075. ends
  3076.  
  3077. state boss1dyingstate
  3078.   ifaction ABOSS1DEAD
  3079.   {
  3080.       ifspritepal 0 break
  3081.       ifrespawn ifcount RESPAWNACTORTIME
  3082.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss1seekstate }
  3083.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3084.   }
  3085.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3086. ends
  3087.  
  3088. state boss1lobbedstate
  3089.     ifcansee
  3090.     {
  3091.         ifactioncount 2
  3092.         {
  3093.             resetactioncount
  3094.             sound BOS1_ATTACK2
  3095.             shoot MORTER
  3096.         }
  3097.         else ifcount 64 ifrnd 16 state checkboss1seekstate
  3098.     }
  3099.     else state checkboss1seekstate
  3100. ends
  3101.  
  3102. state boss1shootenemy
  3103.     ifcount 72 state checkboss1seekstate
  3104.     else ifaction ABOSS1SHOOT ifactioncount 2
  3105.     {
  3106.         sound BOS1_ATTACK1
  3107.         shoot SHOTSPARK1
  3108.         shoot SHOTSPARK1
  3109.         shoot SHOTSPARK1
  3110.         shoot SHOTSPARK1
  3111.         shoot SHOTSPARK1
  3112.         shoot SHOTSPARK1
  3113.         resetactioncount
  3114.     }
  3115. ends
  3116.  
  3117. state checkboss1hitstate
  3118.     ifrnd 2 spawn BLOODPOOL
  3119.     state ultragore_jibs
  3120.     ifdead
  3121.     {
  3122.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3123.         else
  3124.         {
  3125.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3126.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
  3127.         }
  3128.  
  3129.         sound BOS1_DYING
  3130.  
  3131.         addkills 1
  3132.         ai AIBOSS1DYING
  3133.     }
  3134.     else
  3135.     {
  3136.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  3137.  
  3138.         ifspritepal 0 { }
  3139.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS1PALSHRINK break }
  3140.  
  3141.         soundonce BOS1_PAIN
  3142.  
  3143.         debris SCRAP1 1
  3144.         guts JIBS6 1
  3145.     }
  3146. ends
  3147.  
  3148. state boss1code
  3149.  
  3150.     ifaction ABOSS1FROZEN
  3151.     {
  3152.         ifcount THAWTIME { ai AIBOSS1SEEKENEMY spritepal 21 }
  3153.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3154.  
  3155.         ifhitweapon
  3156.         {
  3157.             ifwasweapon FREEZEBLAST { strength 0 break }
  3158.             addkills 1
  3159.             lotsofglass 30
  3160.  
  3161.             ifrnd 84 spawn BLOODPOOL
  3162.             sound GLASS_BREAKING
  3163.             killit
  3164.         }
  3165.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3166.         break
  3167.     }
  3168.     ifai 0 { ifspritepal 0 ai AIBOSS1RUNENEMY else { strength BOSS1PALSTRENGTH ai AIBOSS1SHOOTENEMY } }
  3169.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSS1SHOOTENEMY }
  3170.     else ifai AIBOSS1SEEKENEMY state boss1seekenemystate
  3171.     else ifai AIBOSS1RUNENEMY state boss1runenemystate
  3172.     else ifai AIBOSS1SHOOTENEMY state boss1shootenemy
  3173.     else ifai AIBOSS1LOBBED state boss1lobbedstate
  3174.     else ifai AIBOSS1PALSHRINK state boss1palshrunkstate
  3175.  
  3176.     ifai AIBOSS1DYING state boss1dyingstate
  3177.     else
  3178.     {
  3179.         ifhitweapon state checkboss1hitstate
  3180.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3181.     }
  3182. ends
  3183.  
  3184. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  3185. actor BOSS1 BOSS1STRENGTH fall state boss1code enda
  3186.  
  3187.  
  3188. action ABOSS2WALK                0  4  5  1  30
  3189. action ABOSS2FROZEN              0  1  5
  3190. action ABOSS2RUN                 0  4  5  1  15
  3191. action ABOSS2SHOOT               20 2  5  1  15
  3192. action ABOSS2LOB                 30 2  5  1  105
  3193. action ABOSS2DYING              40 8  1  1  35
  3194. action BOSS2FLINTCH             40 1  1  1  1
  3195. action ABOSS2DEAD               48
  3196.  
  3197. move PALBOSS2SHRUNKRUNVELS 32
  3198. move PALBOSS2RUNVELS 84
  3199. move BOSS2WALKVELS 192
  3200. move BOSS2RUNVELS 256
  3201. move BOSS2STOPPED
  3202.  
  3203. ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
  3204. ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
  3205. ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
  3206. ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
  3207. ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
  3208. ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
  3209.  
  3210. state boss2palshrunkstate
  3211.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3212.     else ifcount SHRUNKCOUNT sizeto 40 40
  3213.     else state genericshrunkcode
  3214. ends
  3215.  
  3216. state checkboss2seekstate
  3217.     ai AIBOSS2SEEKENEMY
  3218.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3219.         move PALBOSS2RUNVELS seekplayer
  3220. ends
  3221.  
  3222. state boss2runenemystate
  3223.     ifcansee
  3224.     {
  3225.         ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY }
  3226.         ifcount 48 ifrnd 2 { ifp palive { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } break }
  3227.     }
  3228.     else ai AIBOSS2SEEKENEMY
  3229. ends
  3230.  
  3231. state boss2seekenemystate
  3232.     ifrnd 2 soundonce BOS2_ROAM
  3233.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3234.  
  3235.     ifcansee ifcount 32 ifp palive ifrnd 48 ifcanshoottarget
  3236.     {
  3237.         ifrnd 64 ifpdistg 4096
  3238.         {
  3239.             ai AIBOSS2RUNENEMY
  3240.             ifspritepal 0 { }
  3241.             else move PALBOSS2RUNVELS seekplayer
  3242.             break
  3243.         }
  3244.  
  3245.         ifpdistl 10240 { ifrnd 128 { sound BOS2_ATTACK ai AIBOSS2LOBBED } }
  3246.         else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3247.     }
  3248. ends
  3249.  
  3250. state boss2dyingstate
  3251.   ifaction ABOSS2DEAD
  3252.   {
  3253.       ifspritepal 0 break
  3254.       ifrespawn ifcount RESPAWNACTORTIME
  3255.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss2seekstate }
  3256.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3257.   }
  3258.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS2DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3259. ends
  3260.  
  3261. state boss2lobbedstate
  3262.     ifcansee
  3263.     {
  3264.         ifactioncount 2 resetactioncount
  3265.         else ifactioncount 1 { ifrnd 128 shoot COOLEXPLOSION1 }
  3266.         else ifcount 64 ifrnd 16 state checkboss2seekstate
  3267.     }
  3268.     else state checkboss2seekstate
  3269. ends
  3270.  
  3271. state boss2shootenemy
  3272.     ifcount 72 state checkboss2seekstate
  3273.     else ifaction ABOSS2SHOOT ifactioncount 2
  3274.     {
  3275.         shoot RPG
  3276.         resetactioncount
  3277.     }
  3278. ends
  3279.  
  3280. state checkboss2hitstate
  3281.     ifrnd 2 spawn BLOODPOOL
  3282.     ifdead
  3283.     {
  3284.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3285.         else
  3286.         {
  3287.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3288.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
  3289.         }
  3290.  
  3291.         sound BOS2_DYING
  3292.  
  3293.         addkills 1
  3294.  
  3295.         ai AIBOSS2DYING
  3296.     }
  3297.     else
  3298.     {
  3299.         ifrnd 144
  3300.         {
  3301.             ifrnd 32 { action BOSS2FLINTCH move 0 }
  3302.             else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3303.         }
  3304.  
  3305.         ifspritepal 0 { }
  3306.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS2PALSHRINK break }
  3307.  
  3308.         soundonce BOS2_PAIN
  3309.  
  3310.         debris SCRAP1 1
  3311.         guts JIBS6 1
  3312.     }
  3313. ends
  3314.  
  3315. state boss2code
  3316.  
  3317.     ifaction ABOSS2FROZEN
  3318.     {
  3319.         ifcount THAWTIME { ai AIBOSS2SEEKENEMY spritepal 21 }
  3320.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3321.  
  3322.         ifhitweapon
  3323.         {
  3324.             ifwasweapon FREEZEBLAST { strength 0 break }
  3325.             addkills 1
  3326.  
  3327.             lotsofglass 30
  3328.             sound GLASS_BREAKING
  3329.             ifrnd 84 spawn BLOODPOOL
  3330.             killit
  3331.         }
  3332.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3333.         break
  3334.     }
  3335.     ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength 1 { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } } }
  3336.     else ifaction BOSS2FLINTCH { ifactioncount 3 ai AIBOSS2SEEKENEMY }
  3337.     else ifai AIBOSS2SEEKENEMY state boss2seekenemystate
  3338.     else ifai AIBOSS2RUNENEMY state boss2runenemystate
  3339.     else ifai AIBOSS2SHOOTENEMY state boss2shootenemy
  3340.     else ifai AIBOSS2LOBBED state boss2lobbedstate
  3341.     else ifai AIBOSS2PALSHRINK state boss2palshrunkstate
  3342.  
  3343.     ifai AIBOSS2DYING state boss2dyingstate
  3344.     else
  3345.     {
  3346.         ifhitweapon state checkboss2hitstate
  3347.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3348.     }
  3349.  
  3350.  
  3351. ends
  3352.  
  3353. actor BOSS2 BOSS2STRENGTH fall state boss2code enda
  3354.  
  3355.  
  3356. action ABOSS3WALK                0  4  5  1  30
  3357. action ABOSS3FROZEN              0  1  5
  3358. action ABOSS3RUN                 0  4  5  1  15
  3359. action ABOSS3LOB                20 4  5  1  50
  3360. action ABOSS3LOBBING            30 2  5  1  15
  3361. action ABOSS3DYING              40 8  1  1  20
  3362. action BOSS3FLINTCH             40 1  1  1  1
  3363. action ABOSS3DEAD               48
  3364.  
  3365. move PALBOSS3SHRUNKRUNVELS 32
  3366. move PALBOSS3RUNVELS 84
  3367. move BOSS3WALKVELS 208
  3368. move BOSS3RUNVELS 270
  3369. move BOSS3STOPPED
  3370.  
  3371. ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
  3372. ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
  3373. ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
  3374. ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
  3375. ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS faceplayer
  3376.  
  3377. state boss3palshrunkstate
  3378.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3379.     else ifcount SHRUNKCOUNT sizeto 40 40
  3380.     else state genericshrunkcode
  3381. ends
  3382.  
  3383. state checkboss3seekstate
  3384.     ai AIBOSS3SEEKENEMY
  3385.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3386.         move PALBOSS3RUNVELS seekplayer
  3387. ends
  3388.  
  3389. state boss3runenemystate
  3390.     ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS3SEEKENEMY } }
  3391.     else ai AIBOSS3SEEKENEMY
  3392. ends
  3393.  
  3394. state boss3seekenemystate
  3395.     ifrnd 2 soundonce BOS3_ROAM
  3396.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3397.  
  3398.     ifcansee ifcount 32 ifrnd 48 ifcanshoottarget
  3399.     {
  3400.         ifrnd 64
  3401.             ifpdistg 4096
  3402.             {
  3403.                 ai AIBOSS3RUNENEMY
  3404.                 ifspritepal 0 break
  3405.                 move PALBOSS3RUNVELS seekplayer
  3406.                 break
  3407.             }
  3408.  
  3409.         ifp palive
  3410.             ai AIBOSS3LOBENEMY
  3411.     }
  3412. ends
  3413.  
  3414. state boss3dyingstate
  3415.   ifaction ABOSS3DEAD
  3416.   {
  3417.       ifspritepal 0 break
  3418.       ifrespawn ifcount RESPAWNACTORTIME
  3419.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss3seekstate }
  3420.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3421.   }
  3422.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS3DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3423. ends
  3424.  
  3425. state boss3lobbedstate
  3426.     ifcansee
  3427.     {
  3428.         ifaction ABOSS3LOBBING
  3429.             ifactioncount 2
  3430.         {
  3431.             shoot RPG
  3432.             resetactioncount
  3433.             ifrnd 8 ai AIBOSS3SEEKENEMY
  3434.         }
  3435.  
  3436.         ifactioncount 3 { action ABOSS3LOBBING resetcount }
  3437.     }
  3438.     else state checkboss3seekstate
  3439. ends
  3440.  
  3441. state checkboss3hitstate
  3442.     ifrnd 2 spawn BLOODPOOL
  3443.     ifdead
  3444.     {
  3445.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3446.         else
  3447.         {
  3448.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3449.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
  3450.         }
  3451.  
  3452.         addkills 1
  3453.         ai AIBOSS3DYING
  3454.  
  3455.         sound BOS3_DYING
  3456.         sound JIBBED_ACTOR9
  3457.  
  3458.     }
  3459.     else
  3460.     {
  3461.         ifrnd 32 { action BOSS3FLINTCH move 0 }
  3462.  
  3463.         ifspritepal 0 { }
  3464.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS3PALSHRINK break }
  3465.  
  3466.         soundonce BOS3_PAIN
  3467.  
  3468.         debris SCRAP1 1
  3469.         guts JIBS6 1
  3470.     }
  3471. ends
  3472.  
  3473. state boss3code
  3474.  
  3475.     ifaction ABOSS3FROZEN
  3476.     {
  3477.         ifhitweapon
  3478.         {
  3479.             ifwasweapon FREEZEBLAST { strength 0 break }
  3480.  
  3481.             addkills 1
  3482.             lotsofglass 30
  3483.  
  3484.             ifrnd 84 spawn BLOODPOOL
  3485.             sound GLASS_BREAKING
  3486.             killit
  3487.         }
  3488.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3489.         break
  3490.     }
  3491.     ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength 1 ai AIBOSS3LOBENEMY } }
  3492.     else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
  3493.     else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
  3494.     else ifai AIBOSS3RUNENEMY state boss3runenemystate
  3495.     else ifai AIBOSS3LOBENEMY state boss3lobbedstate
  3496.     else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
  3497.  
  3498.     ifai AIBOSS3DYING state boss3dyingstate
  3499.     else
  3500.     {
  3501.         ifhitweapon state checkboss3hitstate
  3502.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3503.     }
  3504. ends
  3505.  
  3506. actor BOSS3 BOSS3STRENGTH fall state boss3code enda
  3507.  
  3508.  
  3509. action ACOMMBREETH  0  3  5  1  40
  3510. action ACOMMFROZEN  0  1  5
  3511. action ACOMMSPIN   -5  1  5  1  12
  3512. action ACOMMGET     0  3  5  1  30
  3513. action ACOMMSHOOT  20  1  5   1 35
  3514. action ACOMMABOUTTOSHOOT 20 1 5 1 30
  3515. action ACOMMDYING  30  8  1  1  12
  3516. action ACOMMDEAD   38  1  1  1  1
  3517.  
  3518.  
  3519. move COMMGETUPVELS 128 -64
  3520. move COMMGETVELS 128 64
  3521. move COMMSLOW 64 24
  3522. move COMMSTOPPED
  3523.  
  3524. ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
  3525. ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
  3526. ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
  3527. ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
  3528. ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
  3529. ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
  3530. ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
  3531.  
  3532. state checkcommhitstate
  3533.  
  3534.     ifhitweapon
  3535.     {
  3536.  
  3537.         guts JIBS6 2
  3538.  
  3539.         ifdead
  3540.         {
  3541.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ACOMMFROZEN strength 0 break }
  3542.  
  3543.             addkills 1
  3544.  
  3545.             ifwasweapon RADIUSEXPLOSION { spawn BLOODPOOL sound SQUISHED state standard_jibs state delete_enemy }
  3546.             else ifwasweapon RPG { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3547.  
  3548.             sound COMM_DYING
  3549.             ai AICOMMDYING
  3550.         }
  3551.         else
  3552.         {
  3553.             soundonce COMM_PAIN
  3554.             ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOMMSHRUNK }
  3555.             else ifrnd 24 ai AICOMMABOUTTOSHOOT
  3556.         }
  3557.     }
  3558. ends
  3559.  
  3560. actor COMMANDERSTAYPUT COMMANDERSTRENGTH cactor COMMANDER ai AICOMMABOUTTOSHOOT enda
  3561. actor COMMANDER COMMANDERSTRENGTH
  3562.  
  3563.     state checksquished
  3564.  
  3565.     ifaction ACOMMFROZEN
  3566.     {
  3567.         fall
  3568.  
  3569.         ifcount THAWTIME { getlastpal ai AICOMMWAIT }
  3570.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3571.  
  3572.         ifhitweapon
  3573.         {
  3574.             ifwasweapon FREEZEBLAST { strength 0 break }
  3575.             addkills 1
  3576.  
  3577.             ifrnd 84 spawn BLOODPOOL
  3578.             lotsofglass 30
  3579.             sound GLASS_BREAKING
  3580.             killit
  3581.         }
  3582.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3583.         break
  3584.     }
  3585.     ifai 0 ai AICOMMSHOOT
  3586.     else ifai AICOMMWAIT { ifcount 20 { ifcansee { ifcanshoottarget { ifrnd 96 ai AICOMMGET else ai AICOMMABOUTTOSHOOT } } else ai AICOMMGET } }
  3587.     else ifai AICOMMABOUTTOSHOOT
  3588.     {
  3589.         ifactioncount 2 { ifcansee ai AICOMMSHOOT else { ai AICOMMGET break } }
  3590.         soundonce COMM_ATTACK
  3591.     }
  3592.     else ifai AICOMMSHOOT
  3593.     {
  3594.         ifcanshoottarget
  3595.         {
  3596.             ifcount 24 ifrnd 16 ai AICOMMWAIT
  3597.             ifactioncount 2 { shoot RPG resetactioncount }
  3598.         }
  3599.         else ai AICOMMGET
  3600.     }
  3601.     else ifai AICOMMSHRUNK
  3602.     {
  3603.         ifcount SHRUNKDONECOUNT ai AICOMMGET
  3604.         else ifcount SHRUNKCOUNT sizeto 48 40
  3605.         else state genericshrunkcode
  3606.     }
  3607.     else ifai AICOMMGET
  3608.     {
  3609.         ifnotmoving ifrnd 4 operate
  3610.         ifpdistl 1024 ifp palive { sound COMM_SPIN ai AICOMMSPIN break }
  3611.  
  3612.         ifcansee
  3613.         {
  3614.             ifp phigher move COMMGETUPVELS getv geth faceplayer
  3615.             else move COMMGETVELS getv geth faceplayer
  3616.         }
  3617.         ifactioncount 8 ifrnd 2 ai AICOMMABOUTTOSHOOT
  3618.     }
  3619.     else ifai AICOMMSPIN
  3620.     {
  3621.         soundonce COMM_SPIN
  3622.         ifcount 16
  3623.         {
  3624.             ifpdistl 1280 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  3625.             else ifpdistg 2300 ai AICOMMWAIT
  3626.         }
  3627.         ifactioncount 52 ai AICOMMWAIT
  3628.         ifnotmoving ifrnd 32 operate
  3629.     }
  3630.  
  3631.     ifai AICOMMDYING
  3632.     {
  3633.         fall
  3634.         strength 0
  3635.  
  3636.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  3637.             { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3638.  
  3639.         ifaction ACOMMDYING
  3640.             ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action ACOMMDEAD }
  3641.     }
  3642.     else
  3643.     {
  3644.         ifrnd 2 soundonce COMM_ROAM
  3645.         state checkcommhitstate
  3646.     }
  3647. enda
  3648.  
  3649.  
  3650.